Apache Solr 词级 ngram
Apache Solr word level ngram
我必须为词级 ngram(uni、bi 和 trigram)配置 Solr。例如,如果输入(索引或查询)如下:
“欢迎使用 Apache Solr”
它应该标记为
Unigram: "Welcome", "to", "Apache", "Solr"
Bigram: "Welcome to", "to Apache", "Apache Solr"
Trigram: "Welcome to Apache", "to Apache Solr"
我应该如何从 Solr 获取它。我查阅了Solr的默认指南,我没有找到单词级别tokenizer。
您可以在此处使用 Shingle 过滤器。
此过滤器从标记流中构造带状疱疹,它是标记 n-gram。它将令牌运行组合成一个令牌。
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory"/>
</analyzer>
在:"To be, or what?"
要过滤的分词器:"To"(1), "be"(2), "or"(3), "what"(4)
输出:"To"(1), "To be"(1), "be"(2), "be or"(2), "or"(3), "or what"(3), "what"(4)
你也使用下面的属性。
maxShingleSize :
(整数,必须 >= minShigleSize,默认为 2)每个 shingle 的最大令牌数。
我试过你要求的文字。
这是应用的字段类型。
<fieldType name="text_tokens" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="4" outputUnigrams="true"/>
</analyzer>
</fieldType>
预期输出为:
Unigram: "Welcome", "to", "Apache", "Solr"
Bigram: "Welcome to", "to Apache", "Apache Solr"
Trigram: "Welcome to Apache", "to Apache Solr"
应用上述字段类型后给出的输出是:
这里涵盖了所有预期的标记,例如
unigram : Welcome, to , Apache , Solr
bigram : Welcome to , to Apache, Apache Solr
trigram : Welcome to Apache , to Apache Solr
更多详情请参考下方link。
Shingle Filter Example
我必须为词级 ngram(uni、bi 和 trigram)配置 Solr。例如,如果输入(索引或查询)如下:
“欢迎使用 Apache Solr” 它应该标记为
Unigram: "Welcome", "to", "Apache", "Solr"
Bigram: "Welcome to", "to Apache", "Apache Solr"
Trigram: "Welcome to Apache", "to Apache Solr"
我应该如何从 Solr 获取它。我查阅了Solr的默认指南,我没有找到单词级别tokenizer。
您可以在此处使用 Shingle 过滤器。
此过滤器从标记流中构造带状疱疹,它是标记 n-gram。它将令牌运行组合成一个令牌。
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory"/>
</analyzer>
在:"To be, or what?"
要过滤的分词器:"To"(1), "be"(2), "or"(3), "what"(4)
输出:"To"(1), "To be"(1), "be"(2), "be or"(2), "or"(3), "or what"(3), "what"(4)
你也使用下面的属性。
maxShingleSize :
(整数,必须 >= minShigleSize,默认为 2)每个 shingle 的最大令牌数。
我试过你要求的文字。
这是应用的字段类型。
<fieldType name="text_tokens" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="4" outputUnigrams="true"/>
</analyzer>
</fieldType>
预期输出为:
Unigram: "Welcome", "to", "Apache", "Solr"
Bigram: "Welcome to", "to Apache", "Apache Solr"
Trigram: "Welcome to Apache", "to Apache Solr"
应用上述字段类型后给出的输出是:
这里涵盖了所有预期的标记,例如
unigram : Welcome, to , Apache , Solr
bigram : Welcome to , to Apache, Apache Solr
trigram : Welcome to Apache , to Apache Solr
更多详情请参考下方link。 Shingle Filter Example