【发布时间】:2018-11-08 06:20:01
【问题描述】:
我有一些 Elasticsearch 索引,在搜索时我不知道它们的映射。我使用以下内容对单词“lorem”和“ipsum”执行 AND 搜索:
GET /_search
{
"query": {
"query_string" : {
"query" : "lorem AND ipsum"
}
}
}
这里的好处是搜索是在索引中的所有字段中执行的。现在,一些索引有一个名为“标题”的字段,我想提升这些以对这些进行更相关的排名。但当然,前提是它们存在。我尝试使用“query_string”子句的参数,但我能够提升“title”字段的唯一方法是使用以下查询:
GET /_search
{
"query": {
"query_string" : {
"fields": ["title^2"],
"query" : "lorem AND ipsum"
}
}
}
这会导致“query_string”子句只搜索“title”字段而不搜索其他字段 - 请记住,我不知道这些其他字段是什么。在“default_field”参数中使用通配符只有与“fields”参数一起使用才会导致异常。
所以基本上我想告诉 Elasticsearch:
搜索“lorem”和“ipsum”,如果找到,则将结果排名更高 他们在一个名为“标题”的字段中
我将如何实现这样的目标?
【问题讨论】:
标签: elasticsearch