为什么elasticsearch word\u delimiter\u graph的工作方式与预期不同?

ih99xse1  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(441)

“酷”的东西 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是有意义的,那么我认为这个搜索应该匹配索引的文本,但是它没有。
知道我做错了什么吗?

fjnneemd

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

相关问题