我正在开发一个涉及Elasticsearch的项目。到目前为止,我可以获得大多数功能,除了突出显示。我正在使用Laravel + Elasticsearch官方PHP客户端。
以前我认为这是我的PHP代码的问题,并在这里问了一个问题: highlight field missing from Elasticsearch results, PHP
后来当我在浏览器中尝试使用elasticsearch-head时,我仍然无法在结果中看到突出显示字段,所以我猜我的弹性搜索设置或索引文档的方式一定有问题。
这是我在elasticsearch-head中输入的查询:
{
"query" : {
"match" : {
"combined" : "DNA"
}
},
"highlight": {
"fields" : {
"combined" : {}
}
}
}
我没有看到"突出显示"在" _source"在弹性搜索返回的命中。
我在这里做错了什么?
请指教,
感谢。
更新:我在Ubuntu 16.04 LTS桌面上运行Elasticsearch 2.3.3,JDK 1.8。
Documentation说" store"在映射中需要设置为true。我这样做了,并重新索引了一堆文件。这并没有解决问题。
答案 0 :(得分:0)
好的,在停止并重新启动elasticsearch服务后,我的代码开始按预期工作。我得到了#34;突出显示"结果中的字段。
问题是我需要设置"存储"为真。其他条件相同,包括以下行
"store" => true
确保映射"突出显示"出现在我的结果中。反之亦然。
不确定为什么早点这样做并没有解决我的问题。