ElasticSearch Nest 2.x使用_all Search突出显示嵌套对象

时间:2016-04-07 13:35:48

标签: nest nest-nested-object

使用_all搜索时,我似乎无法突出显示嵌套对象。

我的索引:

{
   "settings":{
      "analysis":{
         "analyzer":{
            "nGramAnalyzer":{
               "type":"custom",
               "filter":[
                  "lowercase",
                  "asciifolding",
                  "NGramFilter"
               ],
               "tokenizer":"WhitespaceTokenizer"
            },
            "WhitespaceAnalyzer":{
               "type":"custom",
               "filter":[
                  "lowercase",
                  "asciifolding"
               ],
               "tokenizer":"WhitespaceTokenizer"
            },
         },
         "filter":{
            "NGramFilter":{
               "type":"ngram",
               "min_gram":1,
               "max_gram":20
            }
         },
         "tokenizer":{
            "WhitespaceTokenizer":{
               "type":"whitespace"
            }
         }
      }
   },
   "mappings":{
      "CustomerSearchResult":{
         "_all":{
            "analyzer":"nGramAnalyzer",
            "search_analyzer":"WhitespaceAnalyzer"
         },
         "properties":{
            "customerId":{
               "type":"string",
               "index":"not_analyzed"
            },
            "remarks":{
               "type":"nested",
               "properties":{
                  "remarkId":{
                     "type":"integer"
                  },
                  "customerId":{
                     "type":"integer"
                  },
                  "remarkText":{
                     "type":"string",
                     "index":"analyzed",
                     "analyzer":"nGramAnalyzer",
                     "search_analyzer":"WhitespaceAnalyzer"
                  }
               }
            },
         }
      }
   }
}

我的查询:

{
   "from":0,
   "size":100,
   "highlight":{
      "pre_tags":[
         "<b>"
      ],
      "post_tags":[
         "<b>"
      ],
      "fields":{
         "remarks.remarkText":{

         }
      }
   },
   "_source":{
      "exclude":[
         "remarks"
      ]
   },
   "query":{
      "match":{
         "_all":{
            "query":"test",
            "operator":"and"
         }
      }
   }
}

如果我使用嵌套查询进行查询,我会得到亮点,但我需要搜索_all。我已经尝试在父级中设置include,包含在root中,但它没有什么区别。

我排除了评论,因为我不想实际返回它们,只是它们的亮点。我也尝试了没有排除的查询。

我只需要嵌套对象的高亮显示。

1 个答案:

答案 0 :(得分:1)

我必须在突出显示上使用RequireFieldMatch(false)。