2012-10-31 265 views
1

我试图允许在solr schema.xml中定义的所有字段进行全局搜索。我有以下领域:Solr - 搜索多个字段

 <field name="catchall" 
     type="text_en_splitting" 
     stored="true" 
     indexed="true" 
     multiValued="true" /> 

然后,我有:

<copyField source="*" dest="catchall"/> 
<defaultSearchField>catchall</defaultSearchField> 

然而,当我搜索时没有指定领域,只搜索这一领域:

<field name="text" type="text_en_splitting" multiValued="false"/> 

是我的配置缺少可搜索所有字段的内容?以下是未包含在默认搜索中的字段示例:

<field name="summary" type="text_en_splitting" indexed="true" stored="true" multiValued="true"/> 

回答

3

我想我已经找到了问题所在。显然,在Solr 3.6.1中,缺省搜索字段在solrconfig.xml中指定,而不是在schema.xml中指定。在solrconfig.xml中,我将元素值从文本更改为catchall。

<requestHandler name="/select" class="solr.SearchHandler"> 
<lst name="defaults"> 
    <str name="echoParams">explicit</str> 
    <int name="rows">10</int> 
    <str name="df">catchall</str> 
</lst> 
</requestHandler>