【问题标题】:Fastest full text search today?今天最快的全文搜索?
【发布时间】:2011-02-23 13:55:06
【问题描述】:

剧透:
这只是另一个 Lucene 与 Sphinx 的对比,
我看到所有其他线程都快两年了,所以决定重新开始..

这里是要求:

数据大小:最大 10 GB。
行数:近十亿
索引应该很快
搜索时间应该在 0 毫秒以下 [好吧,开玩笑...笑...但要尽可能低 ]

在当今世界,我该做什么/做什么/如何去做?

编辑: 我在 lucene 上做了一些计时,为了索引 1.8gb 数据,花了 5 分钟。
搜索速度非常快,除非我执行 a*。 a* 需要 400 ~ 500 毫秒。
我最担心的是索引,这需要 loooonnnnggg 时间和大量资源!

【问题讨论】:

  • 你只需要对新数据、更新数据、删除数据做索引,而不是整个集合

标签: sqlite search lucene sphinx fts3


【解决方案1】:

除了 Lucene 之外,我没有其他经验 - 它几乎是默认的索引解决方案,所以不要认为你会出错。

10GB 不是很多数据。您将能够非常快速地重新索引它 - 或将其保存在 SSD 上以提高速度。当然,还要将整个索引保存在 RAM(Lucene 支持)中,以实现超快速查找。

【讨论】:

  • 我将把所有东西都保存在云端,所以我看不到有人在那里提供像 SSD 一样的速度 :( 顺便说一句,RAM 上的全部数据,我不能把它用于我的应用程序我正在努力……这就像每台计算机 1000 GB 的唯一数据,所以不能将所有内容都带入内存……
  • OK - SSD 只会在构建索引时产生差异。但是很困惑-您说最大数据大小为 10GB,而不是 1000?
  • 大声笑 :D 是的,不是 1000 GB :) 它只有 10 GB...现在检查编辑 :)
  • 好吧,它不是那么简单,由于某些原因我没有在帖子中指定...将会有多个 10 GB 的索引...并且会有多个搜索者搜索每个不同的索引.. 那么这是如何工作的呢?这就是我的意思...抱歉让您感到困惑,如果它只有 10 GB,那么您是 100% 正确的...
【解决方案2】:

请查看 Lucene wiki 以获取有关 improving Lucene indexing speed 的提示。这很简洁。一般来说,Lucene 的速度非常快(它用于实时搜索。)如果您错过了“明显”的内容,这些提示会很方便。

【讨论】:

  • 我现在已经完成了所有“显而易见”的事情:) 只是想知道“这个”是否可行:) 顺便说一句,索引时间好吗? 5分钟到1.8GB?
  • Size 的度量标准有些不准确。索引 1.8G 纯文本将不同于索引 1.8G HTML(您将解析和索引提取的文本)。您需要看看这是否“足够快”满足您的需求。如果现有的索引速度达不到您的期望,您不妨探索如何在实时环境中使用 Lucene。这是不平凡的。
  • @Shrinath - 您的索引速度受到磁盘读取速度的限制,以及在插入索引之前需要处理多少数据。
  • @Richard :同意..在插入之前只完成了一些字符串操作,这也增加了时间......我会尝试减少操作,但只是想确定是否有是一种进一步加速 lucene 的方法..
【解决方案3】:

我最担心的是索引,即 花费 loooonnnnggg 时间,还有很多 资源!!

看看 Lusql,我们用过一次,FWIW 来自 mysql 的 100 GB 数据在一台像样的机器上用了一个多小时来索引,在文件系统(NTFS)上

现在,如果您添加 SSD 或任何超快速磁盘技术,您可以大幅降低它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-14
    • 2020-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    相关资源
    最近更新 更多