質問編集履歴
1
見づらかったので改行を調整しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -40,6 +40,8 @@
|
|
40
40
|
|
41
41
|
何らかの条件である程度絞ってSELECTするという妥協もあり
|
42
42
|
|
43
|
+
|
44
|
+
|
43
45
|
②完全一致でSELECT、8文字程度の前方一致でSELECT…と
|
44
46
|
|
45
47
|
少しずつ条件を緩和しつつ何度かSELECTし、10件以上抽出できた時点で終了
|
@@ -48,11 +50,15 @@
|
|
48
50
|
|
49
51
|
遅い複雑なSQLよりはマシかもしれない…
|
50
52
|
|
53
|
+
|
54
|
+
|
51
55
|
③MySQLのストアドプロシージャでPHPのlevenstein関数のようなものを作る
|
52
56
|
|
53
57
|
→他の方が試していたので実は詳細を把握していないのですが、
|
54
58
|
|
55
59
|
1万件から検索するのに15秒ほどかかっていました。
|
60
|
+
|
61
|
+
|
56
62
|
|
57
63
|
④abcd→「a ab bc cd d」のように分割した文字列を格納するフィールドを別途用意して
|
58
64
|
|
@@ -63,6 +69,8 @@
|
|
63
69
|
(50%以上のレコードに含まれている単語は無視される)
|
64
70
|
|
65
71
|
MySQLのソースを書き換えれば動くようだが、同じサーバで稼働中のサイトもあり、極力避けたい
|
72
|
+
|
73
|
+
|
66
74
|
|
67
75
|
⑤2文字程度までの不一致は許可するとして、検索する文字列が「abcdefghij」とすると、
|
68
76
|
|