0

尝试使用我使用以下映射的自动完成功能

分析 : filter : placename_ngram : max_gram=15, min_gram = 2, type = edge_ngram 分析器 :index: filter : 小写, placename_ngram, tokenizer : 关键字 placename_search : filter: 小写: tokenizer 关键字

这对于提前输入非常有用,但是当我试图找到像“包含在”这样的值时,它不会返回记录。

例如,如果我正在对“Lake”进行文本查询。

我只会得到

湖......伍德湖,

但不会得到史密斯敦湖

我将字段设置为多字段,并且可以使用通配符来查找值,但不确定这是否有效。

我相信我可以使用 NGRAM,但考虑到我只需要按空格(或按单词)的索引词,这似乎是很多开销。不是每一个渗透。

有什么想法吗?

当我将两者上的标记器更改为“标准”时......然后它会找到这些记录......但是我的自动完成功能被搞砸了,并在输入 Lak 时带回了 Smithtown Lake ......(在这种情况下我没有不想)。

谢谢你的帮助

4

2 回答 2

0

看看这个问题,他们在同一个字段上做了 2 个不同的查询。

基本上你在那里,但你需要编写 2 个不同的查询,一个用于自动完成时间,另一个用于完整搜索时间。

您甚至描述希望在搜索期间返回“Smithtown Lake”,但在自动完成期间不返回,您需要有不同的查询才能获得不同的结果!

于 2013-06-12T11:36:27.423 回答
0

我认为带状疱疹正是您正在寻找的。您可以说它是 NGram for Terms。签出这个。

于 2014-10-07T10:08:22.537 回答