“酷”的东西 word_delimiter_graph
“如果它不是1,它就是长度。
我索引了 FooBar Baz
使用 word_delimiter_graph
与 "generate_word_parts": "true", "preserve_original": "true", "split_on_case_change": "true"
标记如下:
pos 0 foobar (positionLength 2)
pos 0 foo
pos 1 bar
pos 2 baz
如果我搜索短语 "foobar baz"
,我的搜索分析器(标准分析器)使用以下标记:
pos 0 foobar
pos 1 baz
如果positionlength是有意义的,那么我认为这个搜索应该匹配索引的文本,但是它没有。
知道我做错了什么吗?
1条答案
按热度按时间fjnneemd1#
word_delimiter_graph
没有完全实现,对于elasticsearch文档中显示的“更好的”匹配短语搜索没有用处。基于这个正在进行的讨论issues.apache.org/jira/browse/lucene-4312
positionLength
没有索引,所以word_delimiter_graph
令牌存储在磁盘上与word_delimiter
代币。即使这些信息被编入索引,我们也无法使用它,直到建立相应的搜索代码。相关
https://issues.apache.org/jira/browse/lucene-7398
https://2019.berlinbuzzwords.de/19/session/complete-precise-graph-based-phrase-query-spannearquery.html