簡體   English   中英

在MySQL全文本搜索中,match對僅顯示完全匹配或具有后綴但不帶前綴的數據

[英]match against shows only exact matches or matches data with some suffix not prefix, in MySQL fulltext search

我已經在線搜索過,但沒有找到任何使用完整鏈接的全文搜索僅返回完全匹配的內容

我有帶有行值的列標題

shiva
goodshiva
goodshiva
goodshivagood

查詢:

SELECT * FROM `jobs` WHERE match(posttitle) against('shiva' in boolean mode)

SELECT * FROM `jobs` WHERE match(posttitle) against('*shiva*' in boolean mode)

不返回任何值

SELECT * FROM `jobs` WHERE match(posttitle) against('shiva*' in boolean mode) 

SELECT * FROM `jobs` WHERE match(posttitle) against('+shiva*' in boolean mode)

僅顯示shivagood和shiva

使用自然語言模式僅顯示完全匹配。

有沒有不用like的方法嗎?

您已發現mysql全文搜索的局限性。

沒有與之等效的語法

LIKE '%something%'

雖然MySQL本身將為該類型的查詢返回結果,但無法使用索引,因此所涉及的表將被“表掃描”

僅當單詞以shiva 開頭時,+ shiva *的全文匹配語法才會匹配。 它不適用於包含濕婆但不以濕婆開頭的單詞。

*shiva*

不支持。

由於此限制和全文搜索的其他問題,許多網站都使用了獅身人面像或Solr等外部搜索引擎。 例如,獅身人面像確實允許

'*shiva*'.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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