1
2
没有比全文搜索更高效的了。 喜欢 |
2
2
如果不使用索引,数据库必须执行“全表扫描”。这相当于你一页一页地翻阅一本书来找到你需要的东西。 也就是说,计算机比人类快得多。这实际上取决于系统的负载大小。使用MySQL,我们成功地在lead信息表上实现了一个搜索系统。问题的本质是普通索引(包括全文)无法解决的问题。所以我们 设计它 使用全表扫描供电。 这涉及使用搜索数据创建尽可能窄的表,并使用相关但非搜索数据将它们连接到一个较大的表中。
如果您的数据需要超过6位的记录,您可能希望使用全文索引重新评估,或者对反向索引进行一些研究。
编辑: 搜索查询是使用PHP类生成的。它们只是:
本质上,这两个表是通过主键连接的(fast),而过滤是通过对SearchTable进行全表扫描来完成的(相当快)。我们使用的是MySQL。
让我知道这是否有帮助。 |
3
1
如果您正在使用JAVA,请查看 Lucene Lucene.net ,它将最小化对数据库的搜索查询调用。 http://incubator.apache.org/lucene.net/
|
4
0
您可以将文本拆分为单独的单词,将它们放在单独的表中,并使用该表查找包含搜索句子中所有单词的PK ID[即,但不一定按正确的顺序],然后仅在这些行中搜索句子。应避免每次都进行表扫描。 请询问是否需要我进一步解释 |
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |