我为我们系统中的不同类型的信息创建了更多的elasticsearch索引。它们主要用于单独查找特定索引中的元素。但是,我们的主页上有一个通用搜索,用户可以在其中搜索所有索引。例如,将使用以下搜索:
curl -XGET 'localhost:9200/my-index-%2A/_doc/_search?pretty' -H 'Content-Type: application/json' -d'
{
"size":25,
"query":{
"bool":{
"must":[
{
"term":{"languageCode":"de"}
},
{
"bool":{
"should":[
{
"simple_query_string":{
"query":"search-term",
"fields":[
"title_*.language^50",
"description_*.language^10",
"content_*.language^1"
]
}
}
]
}
}
]
}
}
}'
在这个搜索中,我使用了许多通配符(my-index-*/_doc/_search
)索引。它的工作原理是完全正确的,但我的问题是,我希望其中一个索引与其他索引一样生成较少的分数。是否有可能在多索引查询中减少索引的权重?
发布于 2020-03-10 10:42:16
是的,您确实可以应用指数升压
GET /_search
{
"indices_boost" : [
{ "my-index-do-not-want" : 0.5 }
]
}
此外,根据您的用例,您可能需要考虑为该查询打开dfs_query_then_fetch
,正如这里提到的。(多指标的弹性搜索评分)这样,索引之间的分数应该更具有可比性。
https://stackoverflow.com/questions/60615771
复制相似问题