Solr不适用于部分搜索

时间:2016-02-18 21:31:32

标签: python solr

我在solr中有以下数据:

Solr structure

使用此Schema.xml配置:

<uniqueKey>id</uniqueKey>

<field name="id" type="int" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="Titulo" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="Anio" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="ISBN" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="URL" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="Autor" type="text_general" indexed="true" stored="true" required="true" multiValued="true" />

但是我不能进行部分匹配,只能使用完整的字符串(例如,我必须将所有URL都放在该字段的搜索范围内)。我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以在schema.xml中添加以下字段类型。 使用&#34; partial_search&#34;您要在其中执行部分搜索的字段的fieldType。

完成schema.xml更改后,您需要重新启动服务器并重新索引数据。

<fieldType name="partial_search" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <tokenizer class="solr.NGramTokenizerFactory" minGramSize="2" maxGramSize="10"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
    </analyzer>
</fieldType>