0

我想在 Elasticsearch 中搜索一个短语,例如“个人纳税日期”。我希望返回的结果更加重视“税”这个词。

到目前为止,我知道如何提升整个索引或提升不同字段,但仍然不知道如何提升不同的术语?有什么帮助吗??

4

2 回答 2

1

使用函数分数,我们可以通过字段提升

GET <index_name>/_search
{
    "query": {
        "function_score": {
           "query": {
            "query_string": {
               "query": "*personal tax date*",
               "fields": [
                "field_1",
                "field_2"
               ]
            }
            },
            "boost": "5",
               "functions": [
                          {
                  "filter": { "match": { "field": "tax" } },
                  "weight": 30
              },
              {
                  "filter": { "term": { "ent_name": "tax" } },
                  "weight": 25
              }
          ],
             "score_mode": "multiply",
            "boost_mode": "sum"
        }
    }
于 2019-12-18T05:25:37.973 回答
1

您可以使用查询并使用查询字符串语法query_string来提升术语,如下所示:

{
  "query": {
    "query_string": {
      "query": "personal tax^2 date"
    }
  }
}
于 2019-12-18T04:57:08.833 回答