2

Lucene クエリ パーサーを使用してテキストを解析し、テキストに対して基本的なテキスト前処理を実行したいと考えています。次のコード行を使用しました。

Analyzer analyzer = new EnglishAnalyzer();
QueryParser parser = new QueryParser("", analyzer);
String text = "...";
String ret = parser.parse(QueryParser.escape(text)).toString();

しかし、私はエラーが発生しています:

Exception in thread "main" org.apache.lucene.queryparser.classic.ParseException: Cannot parse '': Encountered "<EOF>" at line 1, column 0.
4

2 に答える 2

3

を使用Query.escape()すると、特殊文字が削除されます。ただし削除しない

AND、NOT、OR

これは、lucene 検索で使用されるキーワードです。

それに対処する方法は 2 つあります。

  1. クエリ文字列の AND、NOT、OR を置き換えます。
  2. クエリ文字列を小文字に変換します。

大文字の AND、NOT、OR のみがキーワードであるため、小文字に変換すると問題が解決します。小文字の通常の単語として扱われます。

于 2018-07-06T07:23:53.040 に答える