<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>先ほどメールした江上です。</div><div><br></div><div>SQLが中途でした。</div><div>以下になります。10000が数字の部分検索キーを示します。</div><div><br></div><blockquote type="cite"><div dir="ltr"><font color="#000000"><span style="caret-color: rgb(0, 0, 0); background-color: rgba(255, 255, 255, 0);">SELECT * FROM table WHERE<br>order_key_value_json operator(pgroonga.@@) 'paths == "item004" && type == "string" && string @ "10000" '</span></font></div></blockquote><br><div id="AppleMailSignature" dir="ltr">iPhoneから送信</div><div dir="ltr"><br>2019/02/20 14:35、江上 秀樹 <<a href="mailto:egami****@ae*****">egami****@ae*****</a>>のメール:<br><br></div><blockquote type="cite"><div dir="ltr"><span>以前、別件で質問させていただいた江上と申しますが、その節はありがとうございました。</span><br><span></span><br><span>今回は数字の検索処理時間についてになります。</span><br><span></span><br><span>7桁の数字が入ったjsonデータ800万件の検索対象データと検索キーの組合せで、以下のような検索時間がかかりました。</span><br><span></span><br><span>検索対象 検索キー 検索時間</span><br><span>半角 半角 8秒</span><br><span>全角 全角 数ミリ秒</span><br><span></span><br><span>--- 実行したクエリ ----</span><br><span>SELECT * FROM table WHERE</span><br><span>order_key_value_json operator(pgroonga.@@) 'paths == "item004"' </span><br><span></span><br><span>order_key_value_json はjsonカラムで100項目のキーバリュー収容。item004はそのキーの1つ。</span><br><span>---</span><br><span></span><br><span>●確認なのですが、以下で正しいでしょうか?</span><br><span></span><br><span>通常のトークナイザ(TokenBigram)は数字、英字の区切れでトークナイズするため、上記のような数字のみの項目は全体としてインデックス作成され、部分一致はフルスキャンになる。</span><br><span></span><br><span>この場合アルファベットも数字も2文字ずつ区切るトークナイザーである</span><br><span>「TokenBigramSplitSymbolAlphaDigit」を使うことである程度の高速化が見込めるでしょうか?</span><br><span></span><br><span></span><br><span>_______________________________________________</span><br><span>groonga-dev mailing list</span><br><span><a href="mailto:groon****@lists*****">groon****@lists*****</a></span><br><span><a href="https://lists.osdn.me/mailman/listinfo/groonga-dev">https://lists.osdn.me/mailman/listinfo/groonga-dev</a></span><br></div></blockquote></body></html>