2016-02-19 88 views
0
不起作用

我试图做Solr的部分searchs,具有以下字段类型:多个分词器上Solr的

<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> 

但我发现了这个错误:

Index: org.apache.solr.common.SolrException:org.apache.solr.common.SolrException: Could not load conf for core Index: Plugin init failure for [schema.xml] fieldType "partial_search": Plugin init failure for [schema.xml] analyzer/tokenizer: The schema defines multiple tokenizers for: [tokenizer: null]. Schema file is /var/solr/data/Index/conf/schema.xml 

PS:索引是Solr核心的名称。

+0

KeywordTokenizer实际上并未标记 - 它只是将所有内容提取为一个大标记。 – MatsLindh

回答

0

在同一分析器中不能有多个标记器。一种解决方案是将分析器应用于您的字段partial_search。从partial_search复制一个字段,并将第二个分析器应用到该复制字段。另一种解决方案是创建一个自定义标记器,它包装来自您要组合的两个标记器的行为。

+0

感谢您的回答,我会尝试! –