我正在solr中搜索"text“字段,并且正在寻找匹配的方法(例如)"anamal“加上"animal”。我的"text“字段模式如下所示:
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt" />
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType> 使用SolrNet如何执行模糊搜索以匹配"anamal“和"animal"?
发布于 2011-12-08 14:58:12
似乎你可以使用Lucene的"~“模糊搜索,但有一个诀窍!如果保持不变,默认情况下SolrNet将为您转义代字号字符,但可以将其关闭...因此,这应该会为您做好准备:
var query = new SolrQueryByField("myField", "some value~");
query.Quoted = false;需要注意的是(至少现在)您必须使用按字段查询,相同的参数在SolrQuery中不存在……但我想这是有道理的。
发布于 2011-12-08 06:55:50
您可以使用索引时间同义词来实现这一点,有关如何设置的详细信息,请参阅Solr Wiki - SynonymFilterFactory。
https://stackoverflow.com/questions/8423498
复制相似问题