假设我有一个包含学生信息的数据库,我有以下字段:
1)年龄组 2)课程名称 3)原产国
如果我要构建搜索功能,假设用户想要搜索匹配的学生会更好吗?
年龄组或课程名称或原产国?
或者我应该假设用户想要搜索符合所有条件的学生(即AND逻辑)?
最佳做法是什么?我认为大多数时候人们都是OR,因为这会产生最大的结果。
您怎么看?
非常感谢您的反馈!!
答案 0 :(得分:0)
如果这是一个大问题,请给人们选择。否则,它取决于它的常用方式。我期望看到AND所以我可以产生最严格的输出,而不必筛选我不想要的东西 - 但我不知道你的用户群是什么样的;你应该问他们。
答案 1 :(得分:0)
这是用户焦点小组的绝佳候选人。如果您正在构建一个您无法组织焦点小组的站点(而不是软件产品或内部公司应用程序),您可以尝试以调查或联系表单的形式征求用户的反馈。
答案 2 :(得分:0)
您始终可以针对所有这些字段创建全文索引,然后针对索引进行搜索。
CREATE FULLTEXT INDEX giveitaname ON mytable (agefield, coursename, country);
然后像这样查询索引:
SELECT * FROM mytable WHERE MATCH(agefield, coursename, country) against ('%search_variable_here%')
现在,您的搜索将使用部分字词,不匹配的订单,并且可能更具相关性并产生更少的零结果。
与此同时,我个人不会过分担心OR或AND之间的负载,特别是如果您正确设置了索引。您应该根据您正在使用的数据集以及对您的用户群最直观和最相关的数据进行选择。