Apache Solr wildchard搜索不起作用

时间:2017-09-15 14:08:52

标签: xml solr lucene

我在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_adynamic field

<dynamicField name="*_a" type="text_general" indexed="true" stored="true"/>

当我在输入字段中输入内容时,我会得到结果,但不是我想要的结果:

让我们说someField_a是&#34; ABC DE FG.pdf&#34;

我输入&#34; ABC&#34;但随着我的进展,结果搞砸了,我得不到我想要的文件。

如何正确配置?

1 个答案:

答案 0 :(得分:0)

删除whitespace标记生成器。我假设你正在查找文件名?在这种情况下,不需要标记化。

EdgeNGram过滤器与whitespace标记生成器合并后,EdgeNGram过滤器将开始为每个标记创建ngrams。

如果这些文件是Windows文件,您可能希望使用solr.LowerCaseTokenizerFactory搜索文件名不区分大小写。