2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【solr】point type fieldについて

Last updated at Posted at 2018-08-10

はじめに

下記の理由からPoint Typeフィールドとは何かを調査してみた。

  • solr7.0でPoint Type Fieldという新しいデータ構造がサポートされた。
  • すべてのトライ木ベースの数値系、date系のフィールドがdeprecatedとなった。

Point Typeとは?

いわゆるkdツリーと呼ばれるデータ構造で、値空間を小さく分割することで、indexingや検索性能を高めることができるらしい

スキーマ定義

下記のように定義して使用する

  <fieldType name="pint" class="solr.IntPointField" docValues="true"/>
  <fieldType name="pfloat" class="solr.FloatPointField" docValues="true"/>
  <fieldType name="plong" class="solr.LongPointField" docValues="true"/>
  <fieldType name="pdouble" class="solr.DoublePointField" docValues="true"/>

注意点として、現状のPointフィールドではfieldcacheがサポートされていないため、基本的にdocValuesを有効にすることが推奨される。

まとめ

  • Pointフィールドはranged検索では高速(速度、メモリ、ディスク観点)だが、単純なfield:valueの検索ではパフォーマンスは下がるらしいので、現時点では用途に応じて使いわけるのが良さそう(将来的に改善される可能性はあるとのこと)
  • Pointフィールドはfieldcacheが使えないのでdocValuesを有効にすべし

参考

プリンストン大学Robert SedgewickさんのKDツリーレッスン

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?