Solr术语搜索未搜索多字段值中的所有值

Solr术语搜索未搜索多字段值中的所有值,solr,solr4,Solr,Solr4,我有索尔场 <field name="AllTitles" type="text_general" indexed="true" stored="false" multiValued="true"/> <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <charFilter cla

我有索尔场

<field name="AllTitles" type="text_general" indexed="true" stored="false" multiValued="true"/>

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
    <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="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>
它从第一个索引进行搜索,但如果索引上的任何匹配项不是第一个,则它不进行搜索

例如,当我搜索

q="wuhan coronavirus"
我得到两个结果。当我使用字段名“AllTitles”进行搜索时

我得到了7个正确的结果


有人能帮我确定问题吗?

首先,在SolrConfig.xml中检查“df”中定义了什么字段。在下面的示例中,它是“文本”


明确的
10
文本
其次,在schema.xml或托管模式中,无论您使用的是哪种模式,请确保已将“AllTitles”复制到“text”。像这样,

<copyField source="AllTitles" dest="text"/>


在执行所有这些操作之前,您最好在查询时将“AllTitles”添加到“df”参数中进行测试,如raghu777所述。

尝试在df参数中指定AllTitles,为了获得更好的结果,请在eDiscoveryMax中使用qf,并在每个字段中使用boost。
q=AllTitles:"wuhan coronavirus"
<requestHandler name="/select" class="solr.SearchHandler">
   <lst name="defaults">
     <str name="echoParams">explicit</str>
     <int name="rows">10</int>
     <str name="df">text</str>
  </requestHandler>
<copyField source="AllTitles" dest="text"/>