我希望突出显示匹配的结果。如果我提到字段名称,它对我有用,它返回突出显示的文本,但是,如果我将字段指定为“ _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 () )
如何使它在任何字段上都能使用,而不必提及字段名称?
您需要将_all字段映射为已存储。下面的映射应该可以解决问题。注意,尽管这会增加索引的大小。
{ "my_type": { "_all": { "enabled": true, "store": "yes" } }}