Elasticsearch查询未在指定字段中搜索

a9wyjsp7  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(164)

我正在处理一个ElasticSearch查询。在fields选项中,我们指定了'*',这意味着它应该在所有字段中查找,并为少数字段赋予更高的权重。但它并没有正常工作。这个查询是我的同事编写的,如果你能解释一下并指出解决方案,那就太好了。下面是我的查询:

{
  "query": {
    "bool": {
      "must": [
        {
          "simple_query_string": {
            "query": "Atoms for Peace",
            "default_operator": "AND",
            "flags": "PREFIX|PHRASE|NOT|AND|OR|FUZZY|WHITESPACE",
            "fields": [
              "*",
              "systemNumber^5",
              "global_search",
              "objectType^2",
              "partTypes.text",
              "partTypes.id",
              "gs_am_people^2",
              "gs_am_person^2",
              "gs_am_org^2",
              "gs_title^2",
              "_currentLocation.displayName",
              "briefDescription",
              "physicalDescription",
              "summaryDescription",
              "_flatPersonsNameId",
              "_flatPeoplesNameId",
              "_flatOrganisationsNameId",
              "_primaryDate",
              "_primaryDateEarliest",
              "_primaryDateLatest"
            ]
          }
        }
      ]
    }
  }
wbrvyc0a

wbrvyc0a1#

您的查询是正确的,但它将无法在具有“嵌套”数据类型的字段上工作。
doc开始
在所有符合条件的字段中搜索不包括嵌套文档。请使用嵌套查询来搜索这些文档。
您需要使用nested query

{
  "query": {
    "bool": {
      "minimum_should_match": 1, 
      "should": [
        {
          "simple_query_string": {
            "query": "Atoms for Peace",
            "default_operator": "AND",
            "flags": "PREFIX|PHRASE|NOT|AND|OR|FUZZY|WHITESPACE",
            "fields": [
              "*",
              "systemNumber^5",
              "global_search",
              "objectType^2",
              "partTypes.text",
              "partTypes.id",
              "gs_am_people^2",
              "gs_am_person^2",
              "gs_am_org^2",
              "gs_title^2",
              "_currentLocation.displayName",
              "briefDescription",
              "physicalDescription",
              "summaryDescription",
              "_flatPersonsNameId",
              "_flatPeoplesNameId",
              "_flatOrganisationsNameId",
              "_primaryDate",
              "_primaryDateEarliest",
              "_primaryDateLatest"
            ]
          }
        },
        {
          "nested": {
            "path": "record",
            "query": {
              "simple_query_string": {
                "query": "Atoms for Peace",
                "default_operator": "AND",
                "flags": "PREFIX|PHRASE|NOT|AND|OR|FUZZY|WHITESPACE",
                "fields": [
                  "*"
                ]
              }
            }
          }
        }
      ]
    }
  }
}

相关问题