簡體   English   中英

全文搜索不完全匹配

[英]Fulltext search that isn't exact match

我有一個名為“ customers1”的MySQL表,正在運行引擎MyISAM。 我已經在列名,地址和郵政編碼上創建了全文索引。 現在,該表中的客戶之一是我。 我的名字叫“ Gildebrand”。 現在我不能期望用戶可以正確拼寫我的名字,許多人可能會寫“ Glidebrant”,但仍然想找到我的名字。 如何在SQL中進行搜索?

如果我現在運行以下查詢

SELECT * FROM customers1 WHERE MATCH(name,adress,zip) AGAINST('Gildebrand')

它找到我,當然。 但是,如果我拼錯了“ Glidebrand”字樣,它就找不到我。 最好的方法是什么?

我想說的是,如果使用SOUNDEX() http://www.w3resource.com/mysql/string-functions/mysql-soundex-function.php,則可以從這種結果中獲得最接近的結果

我有一個與您相似的通用搜索。 這基本上是我的工作:

SELECT * FROM customers1 WHERE MATCH(name,adress,zip) AGAINST('?')
UNION
SELECT * FROM customers1 WHERE name LIKE ('?%')

這樣,用戶也可以輸入前綴。

如果用戶意識到他們無法拼寫您的名字,但是他們確定名字以Gil開頭,那么他們就可以鍵入該名字。

如果您也想在其他列上支持前綴,則可以添加其他UNION子句。

暫無
暫無

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

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