索引文档时出现上述错误。
<field name="a_suggest" type="my_suggest_field" indexed="true" stored="false"/>
<field name="b_suggest" type="my_suggest_field" indexed="true" stored="false" />
<field name="c_suggest" type="my_suggest_field" indexed="true" stored="false"/>
<fieldType name="my_suggest_field" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.EdgeNGramFilterFactory" maxGramSize="10" minGramSize="2"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
我在打电话时遇到错误。
server.add(documents);
首先,可能的分析错误的含义是什么?它与my_suggest_field
索引分析器有关。是否由于索引分析器中的令牌,过滤器的顺序?
感谢。
答案 0 :(得分:4)
我要回避这个问题,因为这是在寻找这个问题时出现的第一个问题,而且没有一般答案。
尝试使用更新API使用json添加文档时遇到了同样的问题。来找出我在solr中的一个字段没有正确格式化,因为我试图将XML字符串保存到字符串字段中。我不得不将字段更改为text_general。
错误基本上是说您输入的内容可能不适合您的架构。通过一次将它们添加到更新1来检查每个字段。然后根据需要改变。
答案 1 :(得分:3)
我需要为EdgeNGramFilterFactory
和普通建议创建单独的字段类型。
<field name="my_suggest" type="my_suggest_field" indexed="true" stored="false"/>
<field name="my_suggest_ngram" type="my_suggest_ngram_field" indexed="true" stored="false"/>
<fieldType name="my_suggest_field" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<filter class="solr.LowerCaseFilterFactory" />
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
<fieldType name="my_suggest_ngram_field" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<filter class="solr.LowerCaseFilterFactory" />
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="10"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>