2011-11-28 145 views

回答

10

schema.xml中定義了默認的搜索字段 -

<defaultSearchField>text</defaultSearchField> 

您可以複製所有字段此默認搜索字段。

<copyField source="field1" dest="text"/> 
<copyField source="field2" dest="text"/> 
<copyField source="field3" dest="text"/> 

和查詢q=basket ball應該工作。

+2

自Solr 3.6及更高版本以來,這已不再適用。這樣做後查看https://issues.apache.org/jira/browse/SOLR-2724 – kellyfj

3

您需要使用能夠將令牌分派給多個字段的查詢解析器,例如(e)dismax。對於爲例,如果你有兩個字段field1field2http://solr/select?q={!dismax}Basket Ball&qf=field1^1 field2^1

對dismax配置的詳細信息,請參閱http://wiki.apache.org/solr/DisMaxQParserPlugin#qf_.28Query_Fields.29

+0

如果這樣,它仍然必須指定將在搜索合適的領域,。 ?這個人物是什麼意思? – Praditha

+0

是的,你需要指定每個字段。 '^'字符賦予你賦予你的領域權重的能力。例如,如果'field1'中的匹配應該比'field2'中的匹配重要兩倍,那麼可以使用'qf = field1^2 field2^1'。 – jpountz

4

默認的搜索字段(自3.6)現在solrconfig.xml中定義

例如在附帶的Solr configsets目錄,你會看到類似

<initParams path="/update/**,/query,/select,/tvrh,/elevate,/spell"> 
    <lst name="defaults"> 
     <str name="df">allText</str> 
    </lst> 
    </initParams> 

你可以改變solrconfig.xml中allTextyourDefaultSearchFieldName

+0

,同時搜索給出錯誤「未定義的字段文本」 –

+0

您使用的是哪個版本的Solr? – kellyfj

+0

我正在使用solr 5.3 –