我正在为我的应用程序创建文章搜索功能。我正在寻找类似于Stackoverflow的问题创建建议的搜索功能,当您创建新问题时,它会在标题文本框下方弹出。
搜索字符串:
"the dog waker"
数据库行:
"The best you can do"
"Love to your pet"
"Selina the dog walker"
"How to teach your dog to be healthy"
"Teach your dog tricks"
我希望输入中的每个单词对结果集产生影响,如果找不到输入单词,则不会过滤掉我正在搜索的数据集。
我想得到这个结果集:
"Selina the dog walker"
- 从输入“waker”中搜索“dog”并模糊搜索“walker”
"How to teach your dog to be healthy"
- 有“狗”字
"Teach your dog tricks"
- 有“狗”字
我已使用以下内容修改了schema.xml,但它似乎无法正常工作。除非我拥有所有单词,否则它会过滤掉所有内容。
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.StopFilterFactory"/> -->
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
答案 0 :(得分:1)
不确定你想在这里做什么,但我会删除EdgeNGramFilterFactory,如果你想添加一些模糊性,你可以添加PhoneticFilter或使用Lucene语法〜
答案 1 :(得分:0)
不确定:
<filter class="solr.StopFilterFactory"/>
(顺便说一句,你知道你在这一行的末尾有一个结束的XML评论)
另一方面,我知道在Solr 4上,以下工作:
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt " enablePositionIncrements="true"/>
我认为你不需要:
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
最后,“爱你的宠物”不应该出现在结果中,你确认了吗?