一尘不染

在_all字段上突出显示匹配的结果

elasticsearch

我希望突出显示匹配的结果。如果我提到字段名称,它对我有用,它返回突出显示的文本,但是,如果我将字段指定为“ _all”,则它不返回任何值。这对我有用:

        curl -XGET "http://localhost:9200/my_index/my_type/_search?q=stackoverflow&size=999" -d '{
        "highlight":{
                    "fields":{
                             "my_field":{}
                    }
        }
}'

这将返回预期值,如下所示:[突出显示] => stdClass对象([my_field] =>数组([0] => stackoverflow
是最适合技术人员的网站))

但是当我给这个:

        curl -XGET "http://localhost:9200/my_index/my_type/_search?q=stackoverflow&size=999" -d '{
        "highlight":{
                    "fields":{
                             "_all":{}
                    }
        }
}'

我得到空值/无结果。

[highlight] => stdClass Object ( [_all] => Array () )

如何使它在任何字段上都能使用,而不必提及字段名称?


阅读 196

收藏
2020-06-22

共1个答案

一尘不染

您需要将_all字段映射为已存储。下面的映射应该可以解决问题。注意,尽管这会增加索引的大小。

{
  "my_type": {
      "_all": {
        "enabled": true,
        "store": "yes"
      }
  }}
2020-06-22