2011-11-26 20 views
6

Solr kelimesiyle arama yaparken bir de sorun var. Solr, sonuç kelimesini stopword ile gönderiyor ve bu benim beklenen çıktı değil.Bir stopword içeren ifade ne zaman solr sonucunu durdurmak için?

stopwords.txt dosyasında "test" kelimesini ekledim. "Test" ve ben sonuç alamadım: arayacağınız kelimeyi: dosya schema.xml, ben bazı verileri endeksli

<field name="searchword" type="text" indexed="true" stored="true" /> 

gibi alanı var, o zaman şöyle Solr tarayıcı penceresinde arama çalıştı. Sonra tekrar searchword: "test verileri" gibi bir ifade verdim ve sonucu aldım. Bu senaryoyu nasıl önleyebiliriz? Solr kelimesi içeriyorsa Solr herhangi bir sonuç vermemelidir. Bir stopword içeren ifade ne zaman solr sonucunu durdurmak için?

<fieldType name="text" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 
    </analyzer> 
    <analyzer type="query">   
     <tokenizer class="solr.WhitespaceTokenizerFactory" /> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0"/> 
     <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" type="phrase"/> 
    </analyzer> 
</fieldType> 

I (test)

+1

Şema.xml'inizi gönderebilir misiniz? – javanna

cevap

1

Bir "dur Stopword içeren ifadeyi verirken Solr çözüm herhangi bir sonuç temin etmez gerekir:

aşağıdaki kullanıyorum FIELDTYPE olduğunu "kelime, bir aramada dikkate alınmayan bir kelimedir; "durur" veya sonuçları geçersiz kılan bir kelime değildir. Yani açıkladığınız davranış doğrudur: bu, sözcüklerin durması gereken şeydir.

SOLR'da, belirli bir kelimeyi kullandığınızda (belki birinin fikri var mı?) Sonuç formunun "durması" için bildiğim bir yol yoktur. Aklıma

tek şey: - Sorguya :) bu terimleri gözlemlemek zaman solr sorgu göndermeyin - örneğin bir UpdateRequestProcessor kullanarak (eğer endeks önlerinde belgelerden terimleri kaldırın) ve AND sorguları, bu şekilde indekslenmemiş bir terim sorguda göründüğü zaman sıfır sonucu alacaksınız