2009-03-02 21 views
4

Uygulamam kullanıcı tarafından girilen bir dizgeyi alıp Lucene sorgu ayrıştırıcısıyla ayrıştırmaya çalışır. Ancak, bu sorgu ayrıştırıcısında bir hatayı provoke eden çeşitli dize biçimleri olduğunu fark ettim.
örn:Lucene sorgu ayrıştırıcı hatalarını ele alma

  • ~ anystring
  • anystring +

İlk denedim benim kullanıcı bu davaları içermemesi diye dizeyi girilen ama gördüğüm kadarıyla, daha olabileceği kalıp şu an öngörmediğim durumlar.

Sorgu ayrıştırıcı özel durumlarını nasıl ele alıyorsunuz? Onları nasıl önlersiniz?

cevap

2

Kalan ayrıştırma özel durumlarını yakalarız ve bir hata iletisi görüntüleriz ("Aramanız hiçbir belgeyle eşleşmedi. Öneri: Farklı anahtar kelimeler deneyin.").

da How to make the Lucene QueryParser more forgiving?

+0

Hmm, evet, bu gitmek için en belirgin yolu bakın. Ancak bazı ortak durumların sorgu çözümleyici tarafından çözülebileceğini düşünürdüm. Ama belki de bu kesinlikle bir sorumluluk olmamalı. –