検索クエリにApacheLucene構文を使用できるアプリケーションのデータをいくつか見つけたいと思います。日付でデータを検索し、具体的な日付(具体的な日)のデータを検索したい。どうやってやるの?
クエリ:
date: [2010-10-4 TO 2010-10-4]
また
date: 2010-10-4
動作しません。
検索クエリにApacheLucene構文を使用できるアプリケーションのデータをいくつか見つけたいと思います。日付でデータを検索し、具体的な日付(具体的な日)のデータを検索したい。どうやってやるの?
クエリ:
date: [2010-10-4 TO 2010-10-4]
また
date: 2010-10-4
動作しません。
簡単な答え: Luceneには日付クエリ構文の「標準」はありません。アプリがサポートするフォーマットを見つける必要があります。
長い答え:ここ数年かそこらの間、Luceneは数値データを特別にエンコードしたままにします。ほとんどの場合、インデックスの日付はタイムスタンプ形式で保持されます。これは、クエリパーサーがクエリを取り込み、それをかみ砕いてタイムスタンプを吐き出す必要があることを意味します。生のタイムスタンプに対するクエリは、少なくとも人間にとってはあまり実用的ではありません。クエリパーサーには、理解できる事前定義された形式がある可能性があります。
たとえば、Solrには、サポートされている日付/時刻形式の事前定義されたセットがあり、それらをタイムスタンプに解析できます。
Luceneは単なるライブラリであり、各アプリケーション(Solrと使用しているアプリケーションを含む)は、好きなように使用することを目的としていることを忘れないでください。
私は解決策を見つけました。1日単位で検索するには、次のクエリを実行します。
date: [2010-10-4T00:00:00 TO 2010-10-4T23:59:59]
正しい