elasticsearch - 如何在 Elasticsearch 中提高精确匹配而不是多重匹配

标签 elasticsearch lucene

我正在运行以下查询以提高 Elasticsearch 中 multi_match 的精确匹配。但是,没有得到预期的结果。

我的目标是按以下顺序提升:“java developer”> java AND developer > java OR developer

有人可以帮助解决这个问题吗?需要知道如何在此处提升 match_phrase 以及如何在 match_phrase 中添加剩余字段

"query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "java developer",
            "fields": [
              "title",
              "content",
              "tags",
              "summary"
            ]
          }
        }
      ],
      "should": [
        {
          "match_phrase": {
            "title": "java developer"
          }
        },
        {
          "multi_match": {
            "query": "java developer",
            "fields": [
              "title",
              "content",
              "tags",
              "summary"
            ],
            "operator": "and",
            "boost": 4
          }
        }
      ]
    }
  }

非常感谢您的帮助。

最佳答案

这是对我有用的:

  "query": {
    "bool": {
      "must": [
        {
          "multi_match": {
            "query": "java developer",
            "fields": [
              "title",
              "content",
              "tags",
              "summary"
            ]
          }
        }
      ],
      "should": [
        {
          "multi_match": {
            "query": "java developer",
            "fields": [
              "title",
              "content",
              "tags",
              "summary"
            ],
            "type": "phrase",
            "boost": 10
          }
        },
        {
          "multi_match": {
            "query": "java developer",
            "fields": [
              "title",
              "content",
              "tags",
              "summary"
            ],
            "operator": "and",
            "boost": 4
          }
        }
      ]
    }
  }

关于elasticsearch - 如何在 Elasticsearch 中提高精确匹配而不是多重匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31825928/

相关文章:

symfony - foselasticabundle嵌套查询

elasticsearch - 具有动态匹配的ElasticSearch嵌套查询

lucene - 在 Lucene 搜索中将 + 作为特殊字符处理

elasticsearch - 如果已分析原始内容,是否有必要重新分析elasticsearch copy_to?

elasticsearch - 如何在Elasticsearch中使用日期过滤器

java - 如何存储映射表 - lucene 或 DB?

elasticsearch - Elasticsearch 得分差异

Java Lucene : Use spans to get number of matches in a document

date - Elasticsearch (7.3) 日期映射解析失败

elasticsearch - elasticsearch中的span_contain和span_within查询有什么区别?