我正在實現REST API的搜索功能,這是我第一次處理大型數據庫搜索。使用支持表進行FULLTEXT搜索的數據庫搜索
我的MySQL位置表有以下幾列
| id | name | email | phone | postcode | address | verified |
用戶可以通過name, email, phone, postcode or address
搜索位置。
輸入搜索字符串不會分隔不同的字段,即只有一個輸入文本框,並且該字符串與上面的每個可搜索字段匹配(這是故意要的)。
我到目前爲止一直在做的事情是採取輸入字符串並運行匹配...針對每個可搜索列的查詢,合併結果並返回。
但是,我不會創建一個支持索引表(location_query
),它有兩列。
| location_id | match_query |
,當一個位置加入,我可以添加一個新行到具有類似
0 | {NAME} {EMAIL} {PHONE} {POSTCODE} {ADDRESS}
,然後只需運行在match_query列一個全文檢索的值location_query?
請問這項工作?
嗨,謝謝你的回答。目前我沒有任何具體的性能要求,現在只是嘲笑數據,這不是一個專業的應用程序,而是一個學習項目,這意味着用戶負載也沒有。我主要試圖瞄準可擴展性。我不知道數據庫搜索引擎,並會開始研究它們。 非常感謝 – WiserTheBassist
@WiserTheBassist,您可以從Apache Solr開始,它對於具有描述性文檔和社區的初學者來說穩定而且非常友好。 –
是的,我一直在研究它,但是我在一個共享主機計劃和限於cPanel,所以我不相信我可以安裝Apache Solr或任何其他數據庫搜索引擎。 – WiserTheBassist