ES的新手需要帮助建议者.... 我制作了一个简单的索引,其中有一些标题,如“制造商产品名称mpn”:
我目前的映射:
'suggest'=> [
'=> 'completion'
'=> 'simple'
' => false
]
我目前的查询:
'body' => [
'suggest' => [
'text' => $this->query
, 'completion' => [
'field' => 'suggest'
]]]
现在,如果我尝试建议它有效,但结果非常难看...... 也许有人可以帮我找到合适的设置:
e.g。标题是:“Xoar Electric Beechwood Precision”
现在我想要查询的结果:
"X" => "Xoar"
"Yoar E" => "Xoar", "Xoar Electric"
"El" => "Electric"
"Elektric " => "Electric", "Electric Beechwood"
目前,如果我输入“X ....”,它只会返回完整的标题。
这可能吗? 如果是的话,我怎样才能得到这个结果?
提前感谢!
答案 0 :(得分:0)
您需要更改默认标记生成器和分析器以从elasticsearch获取相关文档。
查看以下链接,了解有关如何处理人类语言和拼写错误更正的详细信息,
答案 1 :(得分:0)
你应该使用ngrams
方法,即通过将它们与空格字符分开或最适合你的用例来标记你的单词。然后使用建议分析器索引每个标记。
拆分“Xoar Electric Beechwood Precision”就像这样
然后使用prefix
查询。对于自动更正,您可以使用fuzziness
参数。
希望这有帮助。