【发布时间】:2015-07-16 19:51:00
【问题描述】:
我在 SOLR 中使用了建议器组件,但我觉得它更受限制,因为我无法控制值和字段(如果我有兴趣恢复其他字段以及我更正的拼写)。
我目前正在使用 shingles 和 edgengram 过滤器工厂进行无位置自动建议,我指定了与自动建议列表一起返回的必填字段。
<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(或任何其他过滤器)中的任何其他组件来返回自动建议结果、执行内联更正并返回所需字段作为响应?
注意: 我正在研究 fuse.js,我真的很喜欢自动更正在那里的工作方式。虽然它不是服务器端自动更正,但使用位图算法进行近似字符串匹配。
【问题讨论】:
-
你能举个例子说明你想要得到什么吗?
-
例如:如果有人在自动建议中输入“ipad ari”,我正在尝试根据特定字段进行自动更正(到“ipad air”)并返回该特定字段具有完整内容的文档'ipad 空气'。
标签: solr autocomplete spell-checking autosuggest search-suggestion