Solr Query - HTTP错误400未定义的字段文本

时间:2017-01-23 04:29:11

标签: solr solr6

在我的solr查询中,我在一个服务器上没有问题,而在某些情况下我发送了另一个错误error { "msg":"undefined field text", "code":400}。 我还提到了Solr Query - HTTP error 404 undefined field text和许多其他推荐。但我无法找到它之所以表现如此的原因。

q=title:'food' - 返回结果

q=title:"food safety" - 返回结果

q=title:'food safety' - 错误{" msg":"未定义的字段文字","代码":400}

提前致谢。

1 个答案:

答案 0 :(得分:1)

使用debugQuery=true来了解解析后查询的外观。

q=title:'food safety'

解析查询后

"parsedquery_toString":"title:food text:safety"

Solr在标题字段title:food中搜索术语“食物”,在default字段中搜索称为文本的安全性。 text:safety

由于它使用默认字段进行搜索(在本例中为文本),因此应在模式文件中明确定义字段text

相应地检查您的架构文件。示例字段定义供参考。

<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>