- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
375 :デフォルトの名無しさん[sage]:2016/01/11(月) 18:27:59.94 ID:uSmHGUn0 - リスト中の文字列すべてに対して類似検索をかけたい
文字列は文字列長50文字未満(要するに短い)英数記号だけでなくUTF8マルチバイトもある リストは100〜500件程度 処理コストを出来るだけ抑えたい こういうとき、どうすれば良いでしょうか?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
380 :デフォルトの名無しさん[sage]:2016/01/11(月) 21:36:41.54 ID:uSmHGUn0 - >>376
sqliteをmemoryに置いて高速に…まではわかるんですが sqlite側だけで(sqlのlikeではなく)類似検索をやってもらえるもんなんですか?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 3©2ch.net
384 :デフォルトの名無しさん[sage]:2016/01/11(月) 23:59:48.64 ID:uSmHGUn0 - >>381
そう、そういうことです。比較対象が画像や記事など大き目のデータではなく短い文字列 similar_text()等だとマルチバイト対応化したコード例もあるものの 速度が気になっていて、リスト件数450件程で20msec 単純に検索文字列をn文字ずつずらしながらm文字ずつ取っていって配列にして リスト文字列全てから検索文字列配列のいずれかが含まれるものを拾っていって マッチ回数を順位・精度に使って…とすると2msec位程度には早くなるけどもここからの改善が難しくて難儀してます sqliteだと固有の機能としてlikeでない類似検索機能はなさそうなので、後者のパターンに近い感じですよね でもlikeの単純マッチだけになるから順位付け・精度向上は難しそう
|