首页 > 解决方案 > 在两个或三个字段中查询elasticsearch

问题描述

我在下面的查询中同时搜索索引中的三个字段(标题、网址和描述)。

{
  "from": 0,
  "size": 10,
  "sort": [
    {
      "pgrk": {
        "order": "desc"
      }
    },
    {
      "url_length": {
        "order": "asc"
      }
    }
  ],
  "query": {
    "multi_match": {
      "query": "netflix releases",
      "type": "cross_fields",
      "fields": [
        "title",
        "url",
        "description"
      ],
      "operator": "and"
    }
  }
}

有没有办法只在两个字段中搜索,如果没有找到任何东西,也可以在第三个字段中搜索?也就是说,我只想在字段(标题和网址)中搜索,如果找不到任何内容,请搜索三个字段(标题、网址和描述)

我的查询按字段 (pagerank) 和字段 (url_length) 对结果进行排序,无法删除按字段 (pagerank 和 url_length) 的排序,因为此排序对我的结果很重要。通过我所做的这种排序,它不会生成(_score),如果它生成分数,我会在字段(标题和 url)中放入(提升)以赋予这两个字段的相关性,但由于没有分数,我需要一个在两个相关字段中搜索的方法,如果没有找到任何内容,请搜索三个字段

标签: elasticsearchelasticsearch-dslelasticsearch-query

解决方案


推荐阅读