2017-10-25 5 views
0

こんにちは私は、SQLで照合を行い、関連性でソートするために照合を試みています。Sqlクエリの一致と、正規表現を使用した関連性による順序の比較

SELECT test.*, MATCH(books) AGAINST ('+\'book') as Relevance 
FROM Books.test 
WHERE MATCH(books) AGAINST('+\'book' IN BOOLEAN MODE) 
ORDER BY Relevance 

そして、私は「結果:

は、これが私のクエリです...私は私のインデックスがFULLTEXTあるので、のようなクエリまたはREGEXPを使用したくない、それはより速く実行されます取得mは:

id books    relavance 

2 book, folder, paper '0.15835624933242798' 

5 'book     '0.15835624933242798' 

dataypesである:

IDがINT(11) 書籍あるLONGTEXT

そして、私が持っているインデックス:

key    type  unique columns 

idx_test_books FULLTEXT NO  books 

私はIDのみ5本を取得したい:「あなたは'bookの検索のためのFULLTEXTを使用することはできませんブック

+1

は、それはあなたが見つけるために、あなたが与えられた検索文字列に基づいて検索したくない行たい行少し不明だ – Kandy

+0

あなたのダミーのテーブル構造を提供します。より多くのサンプルデータ、使用する検索文字列、必要な検索結果を含めるように質問を編集してください。 – Progman

+0

私はそれを得る、私は得ることができる方法はありません返された本。私はあなたの答えのおかげで回避策を思いつきました。 – jakestreamhat

答えて

0

は、アポストロフィは無視されます。 FULLTEXTインデックスはbuilds with wordsです。

MariaDB [test]> SELECT *, MATCH(books) AGAINST('"book,.,.,.,$%$:;§$%:;§$%§$:$%"') AS relevance FROM Books ORDER BY relevance; 
+----+---------------------+----------------------------+ 
| id | books    | relevance     | 
+----+---------------------+----------------------------+ 
| 1 | book, folder, paper | 0.000000001885928302414186 | 
| 2 | 'book    | 0.000000001885928302414186 | 
+----+---------------------+----------------------------+ 
2 rows in set (0.00 sec) 

MariaDB [test]> SELECT *, MATCH(books) AGAINST('"book,.,.,.,$%$:;§$%folder:;§$%§$:$%"') AS relevance FROM Books ORDER BY relevance; 
+----+---------------------+--------------------+ 
| id | books    | relevance   | 
+----+---------------------+--------------------+ 
| 2 | 'book    |     0 | 
| 1 | book, folder, paper | 0.0906190574169159 | 
+----+---------------------+--------------------+ 
2 rows in set (0.00 sec) 

MariaDB [test]> SELECT *, MATCH(books) AGAINST('"book folder"') AS relevance FROM Books ORDER BY relevance; 
+----+---------------------+--------------------+ 
| id | books    | relevance   | 
+----+---------------------+--------------------+ 
| 2 | 'book    |     0 | 
| 1 | book, folder, paper | 0.0906190574169159 | 
+----+---------------------+--------------------+ 
2 rows in set (0.00 sec) 
関連する問題