TermQuery と SpanTermQuery の間に機能上の違いはないようです。検索性能など他に違いはありますか?微々たる差でもいいので知りたいです。
それが違いを生む場合、私はLucene.Net 2.9.4gを使用しています。
TermQuery と SpanTermQuery の間に機能上の違いはないようです。検索性能など他に違いはありますか?微々たる差でもいいので知りたいです。
それが違いを生む場合、私はLucene.Net 2.9.4gを使用しています。
検索サーバーに負荷がかかっている場合、2 つのクエリ タイプの間に顕著なパフォーマンスの違いがあることを発見しました。TermQuery の方が高速です。
数百万のドキュメントを持つデータベースに対して 50 人の同時ユーザーを使用した負荷テストで、次の平均検索時間を得ました。
(大きなドキュメント、複雑なクエリ、理想的とは言えないサーバーなど、平均値が通常よりも高くなる要因は他にもあります。しかし、TermQuery と SpanTermQuery の使用による影響は明らかです。)
Spans search APIの機能が必要ない場合、機能的な違いはありません。たとえば、//などを使用する場合はfor句を使用する必要がありますが、SpansAPISpanTermQuery
を使用しない場合は必要ありません。SpanNearQuery
SpanOrQuery
SpanNotQuery
スパンは、ペイロードを操作するときにも非常に便利です。
パフォーマンスは両方のクラスで同じである必要があります。
位置情報を必要としない場合でも、SpanTermQuery には追加の IO が必要です。そのため、TermQuery が機能する場合は、SpanTermQuery を使用しないでください。