1

私はsolrに次のものを持っています

<str name="id">2</str>
<arr name="parsed">
    <str>2011-11-01 13:40:08.0</str>
</arr>
<arr name="person">
    <str>過酷なスネハンシュ | アプール・ジャイン</str>
</arr>

を検索したい場合はjain、このクエリを使用します

http://192.168.1.135:8888/solr/MyCol/select/?q=*%3A*&version=2.2&start=0&rows=10&indent=on&facet=true&fq=person:jain

問題は、2011-11-01 13:00:00 以降または (2011-11-01 12:30:00 と 2011-11-01 13 の間) 以降に解析されたエントリを検索するにはどうすればよいかということです。 :30:00)??
ご協力いただきありがとうございます

4

2 に答える 2

3

解析されたフィールドは、 datefieldとして定義する必要があります。

例えば

schema.xml -

TrieDateField のフィールド タイプを使用できる必要があります -

<fieldType name="tdate" class="solr.TrieDateField" omitNorms="true" precisionStep="6" positionIncrementGap="0"/>

tdate フィールド タイプを使用して prased フィールドを次のようにマッピングします。

<field name="parsed" type="tdate" indexed="true" stored="true"/>

したがって、インデックスが作成されると、応答は次のように表示されます<date name="parsed">2009-04-28T00:00:00Z</date>

これにより、日付フィールドに日付フィルター クエリを使用できるようになります。

例えばfq=parsed:[1995-12-31T23:59:59.999Z TO 2007-03-06T00:00:00Z]

また、検索には を使用することをお勧めしますq=person:jain
ドキュメントを検索するのではなく、フィルター クエリを使用して制限します。

于 2011-11-02T11:20:08.450 に答える
0

これらのクエリ パラメータは機能するはずです (テストされておらず、URL がエスケープされていません) 。

facet.field=parsed
f.parsed.facet.range.start=2011-11-01T12:30:00Z
f.parsed.facet.range.end=2011-11-01T13:30:00Z

説明:

  • facet.field=parsedフィールドでファセットを有効にしますparsed
  • f.parsed.facet.range.start/endそのフィールドの下限と上限を定義します。
  • 日付は ISO 8601 形式にする必要がありますが、「日付計算」式NOW+1YEARも使用できます。

詳細については、 Solr ドキュメントの範囲によるファセットのセクションを参照してください。

于 2011-11-02T11:26:58.077 に答える