2011-11-28 12 views

cevap

10

schema.xml varsayılan arama alanını tanımlar.

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

Ve sorgu q=basket ball çalışmalıdır. (3.6 beri)

+2

Bu artık Solr 3.6 ve sonrası için geçerli değil. Bunu yaptıktan sonra, https://issues.apache.org/jira/browse/SOLR-2724 – kellyfj

3

Jetonları (e) dismax gibi çeşitli alanlara gönderebilen bir sorgu ayrıştırıcısı kullanmanız gerekir. http://solr/select?q={!dismax}Basket Ball&qf=field1^1 field2^1

dismax yapılandırma hakkında daha fazla bilgi için http://wiki.apache.org/solr/DisMaxQParserPlugin#qf_.28Query_Fields.29 bakınız: Exemple için, iki alan field1 ve field2 varsa.

<defaultSearchField>text</defaultSearchField> 

Bu varsayılan arama alanına tüm alanları kopyalayabilirsiniz -

+0

için ,. ? ve^1 karakterinin anlamı nedir? – Praditha

+0

Evet, her alanı belirtmeniz gerekiyor. '^' Karakteri, alanınıza ağırlık vermenizi sağlar. Örneğin, "field1" öğesindeki bir eşleşme, 'field2' alanında bir eşleşme kadar önemli olsaydı, 'qf = field1^2 field2^1' kullanabilirsiniz. – jpountz

4

varsayılan arama alanı hemen solrconfig.xml tanımlanır

ör Solr ile birlikte gelen değiştirebilirsiniz

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

gibi bir şey göreceksiniz dizini configsets solrconfig.xml olarak allText böyle, hala aramada sağ olacak alanları belirtmelidir eğer yourDefaultSearchFieldName

+0

adresine bakın, hata verirken 'tanımsız alan metni' hatalarını araştırın –

+0

Hangi Solr sürümünü kullanıyorsunuz? ben bu solrconfig.xml tanımlanır Solr 5.3 – kellyfj

+0

' ALLTEXT 've alan 'ALLTEXT' adı ' ' bu yüzden şemadaki uygun alanı tanımlamanız gerekiyor - bizim durumumuzda 'allText' –