簡體   English   中英

PHP MYSQL FULLTEXT如何進行精確搜索?

[英]PHP MYSQL FULLTEXT how to make a Precise search?

我做了一個PHP MYSQL FULLTEXT搜索,但是如何進行精確搜索? 當我使用以下代碼時,我需要返回必須包含單詞'new'和'york'的數據,em ...實際上代碼將返回一些僅包含'new'但從未有'york'的數據。 又怎樣?

SELECT * FROM text WHERE MATCH (title,body) AGAINST('new+york' IN BOOLEAN MODE)

你偶然發現了一個邊緣案例 - 問題不是你想象的那樣。

默認情況下,MySQL全文索引不會將長度超過四個字符的單詞編入索引,例如"new" 如果要搜索"new" ,則需要調整最小字長並重建索引。

雖然查爾斯關於“新”這個詞的長度是正確的,但這里還有另一個問題 - 即使用較短的最小詞長重新索引(不完全可取),你會得到包含“新”和“約克”這個詞的內容。他們之間有很多單詞,但不一定只是字符串'new york'。

此外,“新”這個詞很可能超過你記錄的50%,所以沒有任何記錄可以返回。

幾年前,我提出了一種將精確字符串匹配與全文索引相結合的方法 - 盡管我從來沒有考慮過包含布爾模式搜索。

暫無
暫無

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

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