1

TermQuery と SpanTermQuery の間に機能上の違いはないようです。検索性能など他に違いはありますか?微々たる差でもいいので知りたいです。

それが違いを生む場合、私はLucene.Net 2.9.4gを使用しています。

4

3 に答える 3

3

検索サーバーに負荷がかかっている場合、2 つのクエリ タイプの間に顕著なパフォーマンスの違いがあることを発見しました。TermQuery の方が高速です。

数百万のドキュメントを持つデータベースに対して 50 人の同時ユーザーを使用した負荷テストで、次の平均検索時間を得ました。

  • SpanTermQuery の場合: 5 秒
  • TermQuery あり: 3 秒

(大きなドキュメント、複雑なクエリ、理想的とは言えないサーバーなど、平均値が通常よりも高くなる要因は他にもあります。しかし、TermQuery と SpanTermQuery の使用による影響は明らかです。)

于 2012-11-16T21:35:48.173 に答える
0

Spans search APIの機能が必要ない場合、機能的な違いはありません。たとえば、//などを使用する場合はfor句を使用する必要がありますが、SpansAPISpanTermQueryを使用しない場合は必要ありません。SpanNearQuerySpanOrQuerySpanNotQuery

スパンは、ペイロードを操作するときにも非常に便利です。

パフォーマンスは両方のクラスで同じである必要があります。

于 2012-11-15T03:31:43.427 に答える
0

位置情報を必要としない場合でも、SpanTermQuery には追加の IO が必要です。そのため、TermQuery が機能する場合は、SpanTermQuery を使用しないでください。

于 2013-01-17T15:44:49.057 に答える