Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Apache Luceneにおける条件文字(AND,OR,NOT)の検索

現在Apache Luceneを利用した全文検索機能を開発してお
ります。
LuceneはAND、OR、NOTを検索文字列として渡した際に文字
列として認識されません。

そこでお伺いしたいのですが、
Lucene側に文言を渡す際、どのようにすればAND、OR、NOT
を文字列として認識させることが出来るのでしょうか。

初歩的な内容かと思いますが、
宜しくお願い致します。

9

回答

3931

閲覧

9件の回答

評価

0

まずは自分でググってみること。
Lucene自体知らんかったけど、すぐに見つけられたぞ。

評価

0

回答有難うございます。
自身でもgoogle等使って検索してみたのですが、回答を見つ
けることが出来ませんでした。

大変お手数かと思いますが、見つけられたサイトを教えてい
ただけないでしょうか。

宜しくお願い致します。

評価

0

一体何を検索して、いくつ見たんだろうか。
apache luceneで検索すれば、いくつ目かにチュートリアルが
あったぞ。

評価

0

あ、勘違いしてたか?
クォーテーションでくくってるにもかかわらず、andやorが検
索できないってこと?

評価

0

回答ありがとうございます。
説明が足りず申し訳ありません。
御認識通り、クォーテーションで囲んで渡した場合であって
も文字として認識できない状態です。

宜しくお願い致します。

評価

0

エスケープ付きのダブルクォートでくくってもだめ?

評価

0

回答有難うございます。

Apache lucene 2.3.2でデモのjarファイルで検証を行って
おりますが、
\"AND"
\"AND\"
を含め思いつく限りの記号で囲ってみましたが、認識しな
いかQueryParserExceptionが発生してしまう状態です。

宜しくお願い致します。

評価

0

クォーティングで行ける人もいるようなので、バージョンに
よるのかも知れない。

他には、小文字で指定すればいいというもの。

ソースのなかの OR  ||の定義を修正して||だけにして、
JavaCC使って再コンパイルしろというもの。

これを噛ませろというのもあった。
QueryParser.escape(userQuery)

こういうやつを使えというのもあった。
http://lucene.apache.org/core/3_0_3/api/all/org/apache/lucene/
search/MatchAllDocsQuery.html


評価

0

回答有難うございます。

情報を有難うございます。
上記の方法を試してみます。
有難うございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。