加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

在mysql中搜索大量不断更新的文本

发布时间:2020-12-11 23:48:50 所属栏目:MySql教程 来源:网络整理
导读:我有一个mysql数据库,其中不断添加大量文本. (每小时10页文本).文本在文本字段中以纯文本格式存储.每行联系一页或两页文本. 我需要定期在此数据库上进行全文搜索(在文本中搜索关键字并执行复杂查询).我只需要搜索新添加的文本.但是添加文本可以立即搜索(一两

我有一个mysql数据库,其中不断添加大量文本. (每小时10页文本).文本在文本字段中以纯文本格式存储.每行联系一页或两页文本.

我需要定期在此数据库上进行全文搜索(在文本中搜索关键字并执行复杂查询).我只需要搜索新添加的文本.但是添加文本可以立即搜索(一两分钟内)非常重要.

从我所读到的,使用mysql的全文是非常低效的.我知道lucene是一个选项,但我不确定它能以多快的速度索引新文本.

那么我的选择是什么?有没有办法让mysql更有效率? lucene是我最好的解决方案?什么更合适?

谢谢

最佳答案 我已经为Sphinx&的Indexing Times做了基准测试. Solr的.与Solr相比,Sphinx在索引算法方面遥遥领先(超快速索引时间和小索引大小).

当你说10页文字时,你甚至不需要实时狮身人面像索引.您可以遵循Sphinx中的主要增量索引方案(您可以在Sphinx文档中找到它).这将是超快和近实时的.如果您想获得更多帮助,请随时询问,很高兴向您解释.

Solr很棒,但是当谈到优化的算法Sphinx岩石!!试试狮身人面像.

在评论中提出您的问题,Solr / Lucene支持增量索引(在术语中称为delta导入),其安静易于配置,但与Sphinx使用的方法相比,它们相当慢.

主要Delta是足够快的,因为您可以做的是创建一个临时表存储您新的文本并索引它.根据文档:Sphinx支持“实时”(几乎是实时)索引更新,它可以使用
所谓的“主要三角洲”计划.我们的想法是设置两个源和两个索引,其中一个“主”索引用于数据,一个“delta”用于新文档.

例如,您有1000万条记录,因此您可以将其保留为主索引,并将所有新文档添加到将用作增量的新表中.这个新表可以不时编制索引(例如每1小时),并且由于您有10页文本,因此可以在几秒钟内搜索数据.现在,在搜索新记录之后,您可以合并主表delta表的文档,这些文档可以在不干扰您搜索的情况下执行.合并文档后,清空新表,一小时后再次执行整个过程.我希望你有其他的,请随时提出任何问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读