2012-01-14 40 views
10

Solr'da bazı temel eş anlamlıları kurmaya çalışıyorum. Üzerinde çalıştığım biridir:Solr eş anlamlıları nasıl çalışır

bize, abd, abd

Benim anlayış olduğunu eşanlamlı dosyasına ABD'de yaşayan kullanıcılar için arama ve usa veya birleşik içeren belgeleri geri almak için izin verecektir belirtti devletler. Bir kullanıcı usa veya birleşik devletler koyarsa Ditto.

Maalesef, bununla birlikte, bir arama yaptığımda, sözcüklerin üçünü içeren öğeler için sonuçları elde ediyorum - bir VEYA yerine eş anlamlılar olarak bir AND yapıyor.

(+DisjunctionMaxQuery(((westCite:us westCite:usa westCite:unit) | (text:us text:usa text:unit) | (docketNumber:us docketNumber:usa docketNumber:unit) | ((status:us status:usa status:unit)^1.25) | (court:us court:usa court:unit) | (lexisCite:us lexisCite:usa lexisCite:unit) | ((caseNumber:us caseNumber:usa caseNumber:unit)^1.25) | ((caseName:us caseName:usa caseName:unit)^1.5))))/no_coord

Bunu neden yanlış mı yapıyorum:

ben hata ayıklama özelliğini, bu gördüğüm (artı bazı kaynaklanan) de buydu? DefaultOperator'ım AND olarak ayarlandı, ancak eşanlamlı filtrenin bunu anlamasını beklerdim.

cevap

2

, biz uygulama adım adım işlemi olacak (Ben 6.5 Solr kullanıyorum * versiyonunu.):

Adım 1:

İndir country-synonyms.txt metin dosyası ve aşağıdaki yolu yerleştirin:

Yol: \ Solr-6.5.1 \ sunucu \ Solr \ yourCore conf \

yourCore: çekirdeğin adı uygun şekilde değiştirilmelidir

Adım 2:

Alan adı yönetilen şemada dosyası aynı yolda yukarıda belirtilen:

Adım 3: aynı dosya (yönetilen-şema) tipindeki ülke ile alanını (Milliyet) ekleyin.

<field name="Nationality" type="country" indexed="true" stored="true"/> 

Adım 4: başlatma Solr.

solr restart -p <your solr port> 

Adım 5:.

Şimdi

Uyruk içeren alanıyla verilerinizi içe ***

Adım 6:

Şimdi aşağıdaki durumlarda ve testi ile sorgulamak :

Sorgu:

  1. Uyruğu: ABD
  2. Uyruğu: ABD
  3. Uyruğu: Amerika Birleşik Devletleri
  4. Uyruğu: Amerika

Birleşik Devletleri Yukarıdaki tüm sorgular size aynı sonucu verecektir.

Not: *** Yalnızca solr restart dahil olmak üzere yukarıdaki adımları gerçekleştirdikten sonra verileri içe aktarın. Mevcut veriler üzerinde çalışmayabilir (Daha fazla bilgi için, bkz. AnalyzersTokenizersTokenFilters)