私たちはLuceneを使用して、電子メールの受信トレイの場合のように、ユーザーに配信されるデータのフリーテキスト検索ボックスを開発しています。ボックスで日付を処理できるようにしたいと考えています(例:5/1/2011)。物事を簡単にするために、我々はちょうど2つの日付形式に機能の現在のバージョンを制限されています。私たちのプロトタイプについてはLuceneフリーテキスト検索クエリで日付を検出する方法は?
mm/dd/yy
mm/dd/yyyy
我々は、これら二つを探すためにクエリ文字列を事前処理しようとしたクエリ分析プロセスをハッキング日付パターン。これは約2年前、私たちはLucene 2.4でした。 Luceneには、DateFormatを受け入れ、識別された日付のTokenStreamを返すためのツールがあるかどうかは不思議です。 Luceneの2.9のjavadocを見て、私はクラスが見つかりました:
org.apache.lucene.analysis.sinks.DateRecognizerSinkFilter
私が必要なものをやっているようだが、それはSinkFilter、Luceneのウィキに記載されていないような概念を実装しています。誰もこのフィルタを使いましたか?もしそうなら、それを使うのに最も効果的な方法は何ですか?
返信いただきありがとうございます!あなたの解決策を試して、結果を投稿します。 –
素晴らしい!また、元の文字列と日付を同じ位置に出力する通常のインライントークナイザとして実装することもできます。このように、たとえば、日付の形式に月または日付の名前が含まれている場合でも、それらの文字を直接検索することができます。 –