我有一个弹性搜索索引,我每10分钟通过cronjob更新一次。在这个索引中,我有一个完成字段,按预期工作。 但我有一个小问题。让我们说我有一篇文章"我改变一个值的字段,从" a"到" b"。 10分钟后,索引已经更新,文件中包含文章" a"已更新为文章" b"。一切都如预期的那样。 但我的完成字段现在包含两个值。 ""和" b"两者都有相同的身份。
这怎么可能发生?
答案 0 :(得分:0)
映射:
'suggest' => array(
'type' => 'completion',
'payloads' => true,
'preserve_separators' => false,
'search_analyzer' => 'standard',
'index_analyzer' => 'standard'
),
我如何设置字段:
'suggest' => array(
'input' => array(
$result["Name"],
$result["Name"],
$result["Name2"],
$result["Name3"],
$result["Name4"],
$result["Name5"]
),
'output' => $result["Name"].' (' . $result["Name1"].', '.$result["Name2"].')',
'payload' => array(
'id' => $result["ID"]
)
)
答案 1 :(得分:0)
在文档中找到答案。
建议数据结构可能不会立即反映文档上的删除。您可能需要为此进行优化。您可以使用only_expunge_deletes = true调用optimize来仅满足删除操作或者调用Merge操作。