[英]Confusion on mysql full text search
我在使用MySQL全文時有點困惑。 我的數據庫的字符集設置為utf-8
,排序規則設置為utf8_unicode_ci
我有以下搜索產品的流程。 用戶從以下流程中選擇以搜索任何產品
我的困惑是。
varchar
和text
數據類型字段中受支持。 如何獲得相關的結果,如果許多領域用戶選擇的過濾器是在enum
enum
類型的字段。 編輯例如以更好地理解
此搜索針對的是那些特別知道什么東西但不知道其他東西的人。 就像我需要移動電話一樣,但是我什么都不知道,我只是從組合中選擇其類型(Wifi /不帶wifi),然后選擇相機(帶/不帶),然后選擇其他一些功能。 然后,我指定我可以負擔的價格范圍,然后在特定位置的商店中購買手機。 為此,我輸入location A, location B, location C
我想要基於這些位置的結果。 我想根據指定的搜索參數的最接近順序對結果進行排序。 精確匹配到最接近的匹配,然后是最不匹配的匹配。 希望這可以幫助
有人可以對此有所啟發嗎?
謝謝
Full-Text Search Functions
頁面上的文檔指出, FULLTEXT
只能與MyISAM一起使用, 但是 ,MySQL 5.6通過InnoDB添加了對FULLTEXT
索引的支持(請參見InnoDB Table and Index
頁面上的Section 14.2.4.12.3
)。 如果您的表設置為MyISAM,則可以-您應該有支持; 可能與InnoDB配合使用-取決於您的MySQL版本。
要啟用全文本搜索,您應該僅在要使用搜索的字段上添加FULLTEXT
索引(不要將其添加到不需要的字段中)。 FULLTEXT
索引只能應用於CHAR
, VARCHAR
和TEXT
列類型,因此可能只是一個開始。 您的產品名稱可能太短而不必擔心FULLTEXT
索引(可以考慮使用HASH索引),但是您的產品描述(如果有)非常適合。
enum
數據最好使用BTREE
索引而不是FULLTEXT
索引。
不確定; 您能否發布一個示例,說明將查詢和排序哪些字段及其數據類型,以更好地了解您的需求?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.