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"/>