2017-08-01 15 views
2

MariaDBでフルテキスト検索をしようとしても処理できないという問題が発生しました。MariaDBで部分文字列や単語を検索する

myテーブルは次のように生成されます。

CREATE TABLE test (email TEXT, FULLTEXT(email)) ENGINE=InnoDB; 

いくつかのデータを挿入します。

MariaDB [frauctive]> select * from test; 
+---------------------------------+ 
| email       | 
+---------------------------------+ 
| [email protected]    | 
| [email protected]    | 
| [email protected]    | 
| [email protected]    | 
| [email protected]   | 
| [email protected] | 
+---------------------------------+ 

私は機能との対戦を使用すると、取得したい類似度スコアを取得できません。

MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('*david*' IN   BOOLEAN MODE) AS relevance 
-> FROM test ORDER BY relevance DESC; 
+---------------------------------+--------------------+ 
| email       | relevance   | 
+---------------------------------+--------------------+ 
| [email protected]    | 0.0906190574169159 | 
| [email protected]    | 0.0906190574169159 | 
| [email protected]   | 0.0906190574169159 | 
| [email protected]    |     0 | 
| [email protected]    |     0 | 
| [email protected] |     0 | 
+---------------------------------+--------------------+ 

[email protected]」エントリは「ダビデのパターンが含まれているAltough、スコアは0

を返しますが、この関連性を修正するために私を助けてくださいことはできますか?

+0

をフルテキストインデックスは '*デヴィッド*'では動作しません。全文索引を使用しない 'LIKE '%david%' 'を使用する必要があります。 – Adder

+0

それは実際に働いた。私は 'david'、 'david *'、 '%david%'を試みましたが、結果を処理しませんでした。 –

答えて

0

約*ワイルドカード:

ゼロ以上の文字を示すワイルドカード。それは単語の最後にしか現れません。

ソース: https://mariadb.com/kb/en/mariadb/fulltext-index-overview/

てみてください。

MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('david*' IN   BOOLEAN MODE) AS relevance 
-> FROM test ORDER BY relevance DESC; 

それとも

MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('david' IN   BOOLEAN MODE) AS relevance 
-> FROM test ORDER BY relevance DESC; 
+0

私は両方を試みましたが、どちらもうまくいきませんでした。 –

関連する問題