簡體   English   中英

MySQL搜索匹配搜索詞中的整數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM