为特殊字符生成标记的ElasticSearch标记器

ssgvzors  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(108)

我有一个用例,其中特殊字符也应该是可搜索的。我已经尝试了一些tokenizer,如char_group,standard,n-gram。如果我使用n-gram tokenizer,我就能够使特殊字符可搜索(因为它为每个字符生成一个标记)。但是n-gram生成的标记太多了,所以我对使用n-gram标记器不感兴趣。例如,如果文本是hey john.s #100 is a test name,则令牌化器应该为[hey,john,s,#,100,is,a,test,name]创建令牌
有关详细说明,请参阅this问题。
谢谢你,谢谢。

kkbh8khc

kkbh8khc1#

根据您的用例,最好的选择是使用Whitespace标记器和Word Delimiter Graph filter的组合。
要了解更多信息,请查看Elasticsearch关于空格标记器和单词分隔符图过滤器的官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/8.4/analysis-whitespace-tokenizer.html
https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-word-delimiter-graph-tokenfilter.html

相关问题