先ほどメールした江上です。 SQLが中途でした。 以下になります。10000が数字の部分検索キーを示します。 > SELECT * FROM table WHERE > order_key_value_json operator(pgroonga.@@) 'paths == "item004" && type == "string" && string @ "10000" ' iPhoneから送信 2019/02/20 14:35、江上 秀樹 <egami****@ae*****>のメール: > 以前、別件で質問させていただいた江上と申しますが、その節はありがとうございました。 > > 今回は数字の検索処理時間についてになります。 > > 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 mailing list > groon****@lists***** > https://lists.osdn.me/mailman/listinfo/groonga-dev -------------- next part -------------- HTMLの添付ファイルを保管しました... URL: <https://lists.osdn.me/mailman/archives/groonga-dev/attachments/20190220/a3533ecb/attachment.html>