0

だから私はmysqlsのマッチに問題があります。

私はこのようなことをする必要があります:

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some 2 x 3');

「some 2 x 3」は私が探しているものです。しかし、問題はmysqlが各単語を検索するため、「some」、「2」、「x」、および「3」を検索し、mysql設定でft_min_word_lenを変更できないため、これは機能せず、何も無視します2文字未満。

だから私がしたいのは、クエリで「2 x 3」ビットをグループ化することです。だから、このように出てくる可能性がありますか?

SELECT somefield FROM my_table WHERE MATCH(somefield) AGAINST ('some {2 x 3}');

これは、「some」と「2 x 3」を検索します。

もしそうなら、どうすればそれを行うことができますか?

ご協力いただきありがとうございます!

4

1 に答える 1

2

フルテキストは、お客様の要求に対する適切なソリューションではないようです。ストップ ワード リストに含まれているため、MySQL はフレーズ2 x 3にインデックスを付けず、単語にもインデックスを付けません。全文検索では不十分なこれらのケースを処理するために、句をsome使用してクエリを拡張することをお勧めします。OR somefield LIKE '%some 2 x 3%'

于 2012-06-08T10:48:33.757 に答える