SOLR搜索和同义词



我已经使用SOLR实现了一个地址搜索,并希望在查询时用空格替换一些文本。如。,如果有人输入"未定义"这样的单词;我想把它替换成空白

So, 5 Ford Undefined Street becomes 5 Ford Street

我已经实现了同义词

lt => little

我如何继续定义,以便在查询时,未定义转换为空格?

查询的模式定义如下:

<analyzer type="query">
<filter class="solr.PatternReplaceFilterFactory" pattern="([,]+)" replacement=" " replace="all"/>      
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SynonymGraphFilterFactory" synonyms="synonyms.txt"/>
<filter class="solr.FlattenGraphFilterFactory"/>      
</analyzer>

如果您想要删除令牌,您可以使用普通的旧StopFilter。虽然大多数人认为过滤器用于删除不相关的单词,如theof,但它可以用于任何单词列表。

Undefined(和您想要删除的其他单词)添加到单词列表并在分析链中添加停止过滤器:

<filter name="stop" words="stopwords.txt" />
or
<filter class="solr.StopFilterFactory" words="stopwords.txt"/>

最新更新