にある用語を検索したいのですが[0, 10]
、用語は整数として保存されているフィールド「CityId」からのものです。私が書いたことは以下のとおりです。
String queryStr = "CityId : [0, 10]";
Query query = parser.parse(queryStr);
TopDocs topDocs = searcher.search(queryStr);
にある用語を検索したいのですが[0, 10]
、用語は整数として保存されているフィールド「CityId」からのものです。私が書いたことは以下のとおりです。
String queryStr = "CityId : [0, 10]";
Query query = parser.parse(queryStr);
TopDocs topDocs = searcher.search(queryStr);
標準の QueryParser は数値範囲をサポートしていません。QueryParser がサポートする範囲クエリは、数値ではなく辞書式です。これにはNumericRangeQueryを使用する必要があります。
Query query = NumericRangeQuery.newIntRange("CityId", 0, 10, true, true);
また、 Lucene のクエリ構文がどのようなものかについては、 QueryParser のドキュメントを参照するとよいでしょう。範囲クエリの上限と下限はコンマで区切られていません。次のようになりますmyField:[begin TO end]
(繰り返しますが、これは数値範囲ではありません)。