[groonga-dev,04737] 数字項目の部分一致検索時間について

Back to archive index
江上 秀樹 egami****@ae*****
2019年 2月 20日 (水) 14:35:57 JST


以前、別件で質問させていただいた江上と申しますが、その節はありがとうございました。

今回は数字の検索処理時間についてになります。

7桁の数字が入ったjsonデータ800万件の検索対象データと検索キーの組合せで、以下のような検索時間がかかりました。

検索対象    検索キー    検索時間
半角           半角           8秒
全角           全角           数ミリ秒

--- 実行したクエリ ----
SELECT * FROM table WHERE
order_key_value_json operator(pgroonga.@@) 'paths == "item004"' 

order_key_value_json はjsonカラムで100項目のキーバリュー収容。item004はそのキーの1つ。
---

●確認なのですが、以下で正しいでしょうか?

通常のトークナイザ(TokenBigram)は数字、英字の区切れでトークナイズするため、上記のような数字のみの項目は全体としてインデックス作成され、部分一致はフルスキャンになる。

この場合アルファベットも数字も2文字ずつ区切るトークナイザーである
「TokenBigramSplitSymbolAlphaDigit」を使うことである程度の高速化が見込めるでしょうか?




groonga-dev メーリングリストの案内
Back to archive index