0

在我的 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}

提前致谢。

4

1 回答 1

1

用于debugQuery=true了解您的查询在解析后的外观。

q=title:'food safety'

解析查询后

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

Solr 在标题字段中搜索术语“食物”,在名为文本title:food的字段中搜索安全。defaulttext: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>
于 2017-01-23T05:23:27.330 回答