web-dev-qa-db-ja.com

Solrの日付フィールドのtdateと日付?

だから私はSolrのフィールドの日付タイプについて質問がありますが、これは非常に簡単です:「date」フィールドと「tdate」フィールドの違いは何ですか?

スキーマ.xmlは、「より高速な範囲クエリの場合は、tdateタイプを検討してください」および「より高速な日付範囲クエリと日付ファセットの場合は、トライベースの日付フィールド」と主張しています。 '十分に公平です...しかし、precisionStep = "6"とは何ですか?これを変更する必要がありますか? tdateを使用する場合、クエリの作成方法は変わりますか?本当の利点は何ですか、それともSolrはそれをより良くするために何をしますか?

PSはグーグル、Solrマニュアル、solr wiki、そしてJava docsを運がなかったので、親切で説明的な答えをいただければ幸いです:)...またチェックしました: http: //www.lucidimagination.com/blog/2009/05/13/exploring-lucene-and-solrs-trierange-capabilities/http://web.archiveorange.com/archive/v/AAfXfqRYyLnDFtskmLRi

33
Osvaldo Mercado

基本的にトライ範囲はより高速です。 ここ は1つの説明です。 precisionStepを使用して、パフォーマンスを向上させるためにインデックスをどれだけ大きくできるかを構成します。あなたが参照しているリンクから引用するには:

さらに重要なのは、インデックスサイズではなく、選択した精度に依存することです。

そして

trieRangeの唯一の欠点は、追加の用語がインデックスに登録されるため、インデックスサイズが少し大きくなることです。

11
Karussell

あなたの最善の策は、ソースコードを見るだけです。 Solrのいくつかの事柄は十分に文書化されておらず、信頼できる答えを得る最も速い方法は、単にコードを調べることです。まだコードに参加していない場合は、それもメリットになります。少なくとも長期的には。

TrieTokenizerFactoryへのリンクは次のとおりです。

http://www.jarvana.com/jarvana/view/org/Apache/solr/solr-core/1.4.1/solr-core-1.4.1-sources.jar!/org/Apache/solr /analysis/TrieTokenizerFactory.java?format=ok

クラス内のjavadocは、少なくともprecisionStepの目的を示唆しています。あなたはさらに掘ることができます。

編集:私はあなたのためにもう少し掘り下げました。これは、LuceneのNumericTokenStreamクラスに直接渡され、トークンストリームの解析中に値が使用されます。おそらく詳しく調べる価値があります。これは粒度を扱っているようで、おそらくインデックスのサイズと速度の間のトレードオフです。

3
rfeak