私はインデックス作成と検索サービスのために私のポータル(J2EEベース)でLuceneを使用しています。Luceneのキーワード(OR、AND)検索
問題はLuceneのキーワードです。検索クエリでそれらの1つを使用すると、エラーが発生します。例えば
:それはこれが正常に動作し"ik"
または"jij"
searchTerms = "ik AND jij"
を検索しますので、
searchTerms = "ik OR jij"
これは、正常に動作し、それが"ik"
と"jij"
を検索しかし、ときに検索:
searchTerms = "OR"
searchTerms = "AND"
searchTerms = "ik OR"
searchTerms = "OR ik"
等、それはエラーで失敗します:
Component Name: STSE_RESULTS Class: org.apache.lucene.queryParser.ParseException Message: Cannot parse 'OR jij': Encountered "OR" at line 1, column 0. Was expecting one of: ...
これらの言葉は、おそらくLuceneのためのキーワードは予約されているキーワードとして機能するので、それは理にかなっています。
オランダ語では、 "OR"という単語は "Ondernemings Raad"の意味を持つため重要です。それは多くのテキストで使用されており、見つかる必要があります。たとえば "or"は機能しますが、 "OR"という用語に一致するテキストは返されません。検索可能にするにはどうしたらいいですか?
キーワード「または」をエスケープするにはどうすればよいですか?または、どのようにしてLuceneに "または"をキーワードではなく検索語として扱うように指示できますか?
Luceneのどのバージョンですか? AFAIk、BooleanClause.Occur.SHOULDを使用してブーリアンクエリが動作します。 | MUSTNOT(OR | AND | NOT)resp。 – Narayan
Lukeでの検索作業==> http://www.getopt.org/luke/ – Narayan