|
1
16
查看我的演示文稿 Practical Fulltext Search in MySQL . 我比较了一下:
今天我要用的是 Apache Solr ,这使Lucene成为一个具有许多额外功能和工具的服务。 回复你的评论:啊哈,好吧,不。我提到的所有全文搜索功能都没有帮助,因为它们都假设了某种单词边界 N-gram 接近。基本上,创建所有可能的N个字母序列的索引,并指向每个序列出现的字符串。通常这是在N=3的情况下完成的,或者 trigram 我不知道支持n-gram索引的任何SQL数据库,但是您可以使用 :
当然这要花很长时间!但一旦完成,你可以更快地搜索:
当然,您可以搜索超过三个字符的模式,但是反向索引仍然有助于缩小搜索范围:
|
|
|
2
0
|
|
|
3
0
如果您有一个具有长描述性文本的字段(saya a notes字段),并且搜索总是按整词进行,则可以执行全文搜索。
请考虑首先执行完全匹配搜索,并且仅在没有返回结果时执行通配符匹配。如果您有可以提供精确匹配的用户,则这将起作用。我们做过一次机场名称搜索,如果他们输入准确的名称,搜索速度会很快,如果没有,搜索速度会慢一些。 如果您只想搜索文本中某个地方的字符串,而不是单词,那么您的性能相当糟糕。 |
|
|
4
0
|
|
|
Johnny T · 基于当前值的SQL合并表[重复] 1 年前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
ojek · 如何对SQL结果进行分组和编号? 1 年前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 1 年前 |
|
|
Sax · 规范化Google表格(第一步) 1 年前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 1 年前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 1 年前 |