0

我正在使用 elasticsearch 6.8 进行文本搜索。我意识到弹性搜索标记器通过使用此处列出的分隔符​​将文本分解为单词:http: //unicode.org/reports/tr29/#Default_Word_Boundaries。我match_phase用来搜索文档中的一个字段,我想删除标记器使用的一个分隔符。

我进行了一些搜索并找到了一些解决方案,例如使用keyword而不是text. 这个解决方案会对我的搜索功能产生很大的影响,因为它不支持部分查询。

另一种解决方案是使用keyword查询但使用通配符来支持部分查询。但这可能会影响查询的性能。而且,我仍然喜欢将标记器用于其他分隔符。

第三个选项是用于tokenize_on_chars定义用于标记文本的所有字符。但这需要我列出所有其他分隔符。所以我正在寻找类似的东西tokenize_except_chars

那么有没有一种简单的方法可以让我从 Elasticsearch6.8 中使用的分隔符标记器中取出一个字符?

4

1 回答 1

0

protected_words我发现可以完成这项工作的弹性搜索支持。更多信息可以在https://www.elastic.co/guide/en/elasticsearch/reference/6.8/analysis-word-delimiter-tokenfilter.html中找到

于 2020-01-20T02:46:58.127 回答