4

Compassを使用して、メモリデータ構造内のデータに対してクエリを実行しています。文字列と列挙型の値の検索には問題なく機能します。日付を検索したいと思います。

検索条件には注釈が付けられ@SearchRestrictionます。someDateに関する例:

    @SearchRestriction(path="fooBar.someDate" type = SearchRestrictionType.EQUAL)
    String someDate;

検索可能なデータで、SomeDateは次のように注釈が付けられます。

    @SearchableProperty
    Date someDate;

SomeDate検索可能なデータの内部はnew Date();)で生成され、クエリ文字列は。として指定され20120802ます。

デバッガーの状況: このコードは、次のようなクエリを生成します。

    someDate:20120802

これが私someDateが探しているフィールドの名前であり、20120802yyyyMMddの順序の日付です。

問題: このクエリを実行すると、結果が返されません。空のリストが表示されます。クエリの日付は、日付オブジェクトの日付と同じです。

なにが問題ですか??Dateコンパスでs を検索するこれは間違った方法ですか?日付に関する範囲クエリしか見つかりませんが、正確な日付または正確な日付の一部を使用した検索は見つかりません。

4

1 に答える 1

2

Searchableプロパティの形式を指定する必要があります[日付]

@SearchableProperty(format = "yyyyMMdd")

ある程度、それはGrailsに関連しています:Lucene、Compass Query Builder、および日付範囲

于 2012-08-14T19:01:35.680 に答える