solr

时间:2015-12-10 06:20:19

标签: solr

根据cvs,反馈和记录或其组合或全部选择,我有以下四个默认字段: cv_text cv_feedbacks cv_records cv_records_feedbacks

所有四个字段都是text_general类型,定义为

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.WhitespaceTokenizerFactory"/>
    <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.WhitespaceTokenizerFactory"/>
    <filter class="solr.StandardFilterFactory"/>
    <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>

当我尝试搜索C ++或C#等特殊单词时,只有当默认搜索字段为cv_records时,solr才会返回搜索结果,即使其他字段中也有C ++或C#单词。

1 个答案:

答案 0 :(得分:0)

这是因为

a)您在没有明确提及目标字段的情况下使用(默认)lucene查询解析器(即您的查询仅包含术语)。在这种情况下,使用默认字段

b)您正在使用(e)dismax查询解析器,而您的qf参数仅包含该字段

看到你的评论后,我想你是第一个选择。所以我建议你

  • 检查solr日志以查看您的gui正在发送正确的查询
  • 在浏览器中重复相同的查询并添加debug = true。您将看到Solr&#34;如何看待&#34;查询
  • 使用Solr管理员中的架构浏览器并检查不会返回结果的字段的内容......也许它们是空的(即您在这些字段中没有编入任何索引)
相关问题