我对使用 MySQL 全文没有什么困惑。我有数据库,其字符集设置为utf-8
,排序规则设置为utf8_unicode_ci
我有以下搜索产品的流程。用户从以下流程中选择搜索任何产品
- 用户选择 product_type,枚举字段,其值为 consumable/unconsumable。
- 然后选择product_nature,enum 0=>finished 1- unfinished。
- 然后用户选择位置,varchar 用户可以选择多个位置。
- 然后用户指定价格范围等(大约还有 5 个选择) 在搜索页面中,用户唯一输入的是位置、价格范围。休息他们从组合中选择的所有内容。
我的困惑是。
- 我的数据库是否支持全文搜索?
- 为了启用全文搜索,我需要索引哪些字段。
varchar
因为仅在和text
数据类型字段中支持全文。如果用户为过滤器选择的许多字段在其中,如何获得相关结果enum
- 我想根据用户选择的过滤器在顶部显示完全匹配和几乎匹配的产品,就像我上面描述的那样。是否按全文相关性排序在这里工作,因为有许多类型的字段
enum
。
编辑 为了更好地理解例如
此搜索适用于那些知道要买什么但不知道其他任何东西的人。就像我需要一部手机一样,但我什么都不知道,我只是从组合中选择它的类型(Wifi/不带 wifi),然后选择相机(带/不带),然后选择其他几个类似的功能。然后我指定我能承受的价格范围,然后我希望在特定位置的商店中有电话。为此,我键入location A, location B, location C
. 我想要基于这些位置中的任何一个的结果。我想根据指定的搜索参数的最接近的匹配对结果进行排序。精确匹配到最接近的匹配,然后是最接近的匹配。希望这可以帮助
有人可以对此有所了解吗?
谢谢