[英]MySQL Search Match Against Integer in Search Term
在哪里使用以下查詢來搜索產品數據庫。 在我們的后端中使用它來查找要編輯的產品,跟隨搜索詞並進行查詢可以正常工作。
搜索詞:歐元級
SELECT * FROM product_descriptions WHERE MATCH(product_name) AGAINST('"+euro* +grade*"' IN BOOLEAN MODE) LIMIT 10
輸出:
product id product_name price
1 Euro Grade 20k 200.00
2 Euro Grade 30k 300.00
3 Euro Grade 40k 400.00
但是,如果我們要在搜索查詢中使用整數進行搜索,則不會返回任何結果
搜尋字詞:歐洲等級40k
SELECT * FROM product_descriptions WHERE MATCH(product_name) AGAINST('"+euro* +grade* +40k*"' IN BOOLEAN MODE) LIMIT 10
可能是由於以下mysql限制所致:
全文搜索的默認最小長度為4個字符。 因此,如果您要搜索少於4個字符的單詞,則可以使用變量ft_min_word_len和ft_max_word_len更改最小和最大單詞長度。
問題可能出在系統變量ft_min_word_len
。 此值的默認值是4
(如所解釋這里 ),這意味着1,2,和3個字符的單詞都被忽略。 您的單詞'40k'
太短,因此甚至沒有索引。
您需要更改參數值,然后重新生成索引。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.