2

我试图在高层次上完成的是一个自动完成输入字段,它在多个字段上查询客户和订单,客户在客户名称搜索中排名更高。

在我看来,使用 elasticsearch 提供的工具可以有多种方法来解决这个问题。

我解决这个问题的方法是使用multi_match带有prefix_phrase类型的查询,以便让部分查询跨多个字段工作。

例如,“bo”应该返回“Bob Smith”以及“Adam Boss”的匹配项。我将全名索引为与名字和姓氏分开的字段,因此“adam boss”也将返回有效的前缀匹配。

此外,我想提升客户结果 - 尝试使用boostmulti_match 上的参数来做到这一点,但这似乎并不像我期望的那样工作。

解决这个问题的直接方法是什么?

我在使用 elasticsearch 文档时面临的挑战之一是,并不总是清楚哪些属性和功能适用于哪些其他属性和功能。例如,multi_match 文档除了在字段级别之外没有讨论使用自定义提升。

4

1 回答 1

2

我认为最好的方法是使用 ES (v0.90.3+) 的完成建议,请参考这里的真实用例:

http://www.elasticsearch.org/blog/you-complete-me/ http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-suggesters-completion.html

于 2013-11-26T09:03:29.970 回答