2012-01-25 13 views
5

http://wiki.apache.org/solr/SpellCheckComponent numaralı belgeden elde edilen Solr SpellCheck Bileşenini uyguladı, iyi çalışıyor. Ama diğer bazı süzgeç dayalı yazım denetimi sonucu filtre çalışıyorum. Aşağıdaki şema Yukarıdaki şemada içinSolr Spell Check sonuç tabanlı filtre sorgusu

product_name 
product_text 
product_category 
product_spell -> copy string from product_name and product_text . And tokenized using white space analyzer 

düşünün, ben sağlanan kategorisine göre yazım denetimi sonucu filtrelemek için çalışıyorum. http://127.0.0.1:8080/solr/colr1/myspellcheck/?q=product_category:160%20appl&spellcheck=true&spellcheck.extendedResults=true&spellcheck.collate=true gibi sorgulamayı denedim. Yazım denetimi sonuçları şu ürünleri dikkate almaz: 160

Bu sözlük tüm kategoriler için oluşturulduğundan mi? Öyleyse, her kategori için sözlük oluşturmak iyi bir fikir midir?

Yazım denetimi bileşeninde başka bir filtre koşuluna sahip olmak mümkün değil mi? Ben kullanıyorum

Solr 3.5

cevap

6

Daha önce fq parametre üzerinden filtreleme harmanlama kullanarak mümkün olmalıdır SOLR-2010 sayısından anlaşılmaktadır, ama değil, ben yanlış düşünüyorum. Aslında, SpellCheckComponent, DirectoSolrSpellChecker uygulaması dışında, büyük olasılıkla ayrı bir dizine sahiptir. Bu, seçtiğiniz alanın, yalnızca yazım düzeltmeleri yapmak için seçtiğiniz belirli alanla ilgili bilgileri içeren farklı bir dizinde dizine eklendiği anlamına gelir.

Merak ediyorsanız, bu ek indeksin luke'u nasıl kullandığını da görebilirsiniz, çünkü elbette bir lucene dizini. Ne yazık ki, diğer alanları kullanarak filtreleme yapmak bir seçenek değildir, sadece yazım düzeltmeleri yapmak için kullandığınız yalnızca bir alan olduğu için.

+0

Tam olarak !!! Ben de aynısını hissediyorum. –

+0

Emin olmak için solr kullanıcısı posta listesine yazdım, ancak henüz bir yanıt almadım. Her neyse, koda baktım, 'fq' parametresi bile okunmadı ve luke ile indekse baktım: filtreler yapmak için yeterli bilgi içermiyor. – javanna

+0

evet indekse göre, bulgumuz doğrudur. solr-user mail listesinden –