SORU
30 Mart 2011, ÇARŞAMBA


Lucene Analiz karşılaştırma

Birisi Lucene içinde farklı çözümleyicileri arasındaki farkı açıklayabilecek olan var mı? MaxClauseCount bir istisna alıyorum ve bir KeywordAnalyzer kullanarak bunu önlemek anladığım kadarıyla ama sorunlar analiz çevresindeki anlamadan StandardAnalyzer değiştirmek istemiyorum. Çok teşekkür ederim.

CEVAP
30 Mart 2011, ÇARŞAMBA


Genel olarak, Lucene herhangi bir çözümleyici stop-kelime tokenizer sözcük kökü ayırıcı filtre.

Tokenizermetin parçalara böler ve farklı analizci, farklı tokenizers kullanabilirsiniz beri, farklı çıkış alabilirsinizsimge akarsuyani dizileri parçaları metinleri. Örneğin, bahsettiğiniz KeywordAnalyzermetin hiç bölme yokve tek bir belirteç olarak sahaya giriyor. Aynı zamanda, StandardAnalyzer (ve diğer birçok analizci), boşluk ve noktalama işareti olarak bölünmüş puan kullanın. İfade için örneğin, "çok mutluyum" liste üretecektir ["i", "am", "", ""] mutlu (ya da onun gibi bir şey). çok Özel analiz cihazları hakkında daha fazla bilgi için/Java Docs bakın tokenizers.

Sözcük köklerinisoru bir sözcük tabanı elde etmek için kullanılır. Bu oldukça ağır bir dil kullanılmış. Örneğin, bir önceki cümle İngilizce olacak bir şey gibi ["", "", "veri", "happi"] üretilen ve Fransızca "Je I'm très heureux" bir tür Fransız çözümleyici (SnowballAnalyzer, başlatılmış olan "Fransız") vasiyet ["je", "être", "tre", "heur"]. Eğer başka bir metin kök bir dil çözümleyici kullanacaksanız tabii ki, başka bir dil kullanılacak ve yanlış sonuçlar doğurabilir kökü kuralları. Tüm sistemin başarısız değil, ama arama sonuçları o zaman daha az doğru olabilir.
Herhangi bir sözcük köklerini kullanmaz KeywordAnalyzer, alan değiştirilmemiş tüm geçirir. Eğer bazı kelimeler İngilizce metin arama yapacaksanız, bu çözümleyici kullanmak iyi bir fikir değil.

Kelimeleri bıraken sık ve neredeyse işe yaramaz sözler. Yine, ağır diline bağlıdır. İngilizce için bu kelimeleri "", "","","","", vb. var olmak bir Stop-kelime filtreleri kaldırmak onlardan token akışı için daha düşük ses arama sonuçları, sonunda bizim ifade "çok mutluyum" ile StandardAnalyzer olacak dönüştürdü liste ["veri", "happi"].
Ve KeywordAnalyzer yine hiçbir şey yapmaz. Yani, KeywordAnalyzer normal metin için KİMLİK ya da telefon numaraları gibi şeyler için, ama kullanılmaz.

Ve maxClauseCount sizin özel durum için, arama alacaksın inanıyorum. Bu durum muhtemelen çok karmaşık bir arama sorgusu yüzünden. Split için birkaç sorgu deneyin veya daha düşük seviyeli fonksiyonları kullanın.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Tutorials Junction

    Tutorials Ju

    1 Ocak 2014
  • TWiT Netcast Network

    TWiT Netcast

    27 EKİM 2005