有没有办法自动更正 solr 中的拼写和 return 对应于更正值的附加字段?
Is there a way to autocorrect spellings in solr and return additional fields corresponding to corrected value?
我在 SOLR 中使用了 suggester 组件,但我觉得它更受限制,因为我失去了对值和字段的控制(如果我有兴趣取回其他字段以及我更正的拼写)。
我目前正在使用 shingles 和 edgengram filter factory 进行无位置自动建议,我指定需要的字段与自动建议列表一起 returned。
<fieldType name="edgytext" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<filter class="solr.LowerCaseFilterFactory"/>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="20" />
</analyzer>
<analyzer type="query">
<filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigrams="true" outputUnigramIfNoNgram="true" maxShingleSize="99"/>
<filter class="solr.PositionFilterFactory" />
</analyzer>
</fieldType>
有没有办法在 SOLR(或任何其他过滤器)中使用建议器或任何其他组件来 return 自动建议结果、执行内联校正以及 return 所需字段作为响应?
注:
我正在查看 fuse.js,我真的很喜欢那里自动更正的方式。它不是服务器端自动更正,而是使用位图算法进行近似字符串匹配。
我找到了一种结合拼写检查组件和上述代码逻辑来进行即时自动建议的方法。
首先我检查拼写是否正确(使用拼写检查组件),如果我没有收到任何建议,我就尝试使用原始关键字进行查询。如果我收到任何建议,我会使用建议的术语(排序规则)进行新查询。
我在 SOLR 中使用了 suggester 组件,但我觉得它更受限制,因为我失去了对值和字段的控制(如果我有兴趣取回其他字段以及我更正的拼写)。
我目前正在使用 shingles 和 edgengram filter factory 进行无位置自动建议,我指定需要的字段与自动建议列表一起 returned。
<fieldType name="edgytext" class="solr.TextField" positionIncrementGap="100" omitNorms="true">
<analyzer type="index">
<filter class="solr.LowerCaseFilterFactory"/>
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="2" maxGramSize="20" />
</analyzer>
<analyzer type="query">
<filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
<filter class="solr.LowerCaseFilterFactory"/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.ShingleFilterFactory" outputUnigrams="true" outputUnigramIfNoNgram="true" maxShingleSize="99"/>
<filter class="solr.PositionFilterFactory" />
</analyzer>
</fieldType>
有没有办法在 SOLR(或任何其他过滤器)中使用建议器或任何其他组件来 return 自动建议结果、执行内联校正以及 return 所需字段作为响应?
注: 我正在查看 fuse.js,我真的很喜欢那里自动更正的方式。它不是服务器端自动更正,而是使用位图算法进行近似字符串匹配。
我找到了一种结合拼写检查组件和上述代码逻辑来进行即时自动建议的方法。
首先我检查拼写是否正确(使用拼写检查组件),如果我没有收到任何建议,我就尝试使用原始关键字进行查询。如果我收到任何建议,我会使用建议的术语(排序规则)进行新查询。