如何根据 Elasticsearch 中的最大单词数对句子进行标记?
How to tokenize a sentence based on maximum number of words in Elasticsearch?
我有一个像 "This is a beautiful day" 这样的字符串
我应该使用什么分词器或分词器和分词过滤器之间的什么组合来生成包含最多 2 个词的术语的输出?理想情况下,输出应该是:
"This, This is, is, is a, a, a beautiful, beautiful, beautiful day, day"
到目前为止,我已经尝试了所有内置的分词器,'pattern' 分词器似乎是我可以使用的分词器,但我不知道如何为我的案例编写正则表达式模式。有帮助吗?
看来您正在寻找 shingle token filter 它完全符合您的要求。
正如@Oleksii 所说。
在您的情况下 max_shingle_size = 2(这是默认值),并且 min_shingle_size = 1.
我有一个像 "This is a beautiful day" 这样的字符串 我应该使用什么分词器或分词器和分词过滤器之间的什么组合来生成包含最多 2 个词的术语的输出?理想情况下,输出应该是: "This, This is, is, is a, a, a beautiful, beautiful, beautiful day, day" 到目前为止,我已经尝试了所有内置的分词器,'pattern' 分词器似乎是我可以使用的分词器,但我不知道如何为我的案例编写正则表达式模式。有帮助吗?
看来您正在寻找 shingle token filter 它完全符合您的要求。
正如@Oleksii 所说。 在您的情况下 max_shingle_size = 2(这是默认值),并且 min_shingle_size = 1.