我在6.6.0版本中使用Solr,在版本6.6.0中使用Lucene。
我想创建一个搜索框,在我输入查询时显示点击建议。
这是我的方法:
架构(我只有一个managed-schema
文件):
<copyField source="someField_a" dest="someField_a_wildcard"/>
<field name="someField_at_wildcard" type="wildcard_type" indexed="true" stored="true" />
<fieldType name="wildcard_type" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="25"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldType>
someField_a
是dynamic field
:
<dynamicField name="*_a" type="text_general" indexed="true" stored="true"/>
当我在输入字段中输入内容时,我会得到结果,但不是我想要的结果:
让我们说someField_a
是&#34; ABC DE FG.pdf&#34;
我输入&#34; ABC&#34;但随着我的进展,结果搞砸了,我得不到我想要的文件。
如何正确配置?
答案 0 :(得分:0)
删除whitespace
标记生成器。我假设你正在查找文件名?在这种情况下,不需要标记化。
将EdgeNGram
过滤器与whitespace
标记生成器合并后,EdgeNGram
过滤器将开始为每个标记创建ngrams。
如果这些文件是Windows文件,您可能希望使用solr.LowerCaseTokenizerFactory
搜索文件名不区分大小写。