【问题标题】:the fastest way to save lucene-solr search result?保存 lucene-solr 搜索结果的最快方法是什么?
【发布时间】:2012-12-18 17:28:51
【问题描述】:

目前 SQL '%like%' 搜索用于获取包含某些关键字的所有行。我们正在尝试用 Lucene-Solr 替换 MySQL 之类的搜索。

我们构建了索引,

  1. 使用关键字查询 solr,
  2. 检索到所有对应记录的主键,
  3. 用PK查询到mysql
  4. 并获取结果。

而且它变慢了。该死!

我认为是 1、2、3 中使用的带宽是原因(因为结果非常大,比如 100 万+),但我想不出更好的方法。

除了 CSV over http,还有其他方法可以获取 solr 搜索结果吗? (如 mysql 中的文件转储)

【问题讨论】:

  • 第 1 点和第 2 点是安全的,如果以适当的方式调整 solr。但我还是不明白你的问题。 solr 的默认响应是一个 XML 文件。你应该用 solr 完全替换 mysql

标签: search solr lucene full-text-search search-engine


【解决方案1】:

我们使用相同的程序来组合 solr 和 mysql,这比单个 mySql 全文搜索快 100-1000 倍。

因此,您的工作流程/程序通常不是问题。 问题是:你的瓶颈在哪里。 要对此进行调查,您应该查看 catalina 以查看每个 solr 请求的查询时间。在 MySQL 上也一样 - 看看查询时间/长时间运行的查询。

我们遇到了性能问题,因为返回的 PK 数量非常大 -> 由于where in () 子句非常长,所以 mySQL 查询非常大。

随后是一个非常大的 MySQL 语句,其中许多行返回 200-1.000.000+

但重点是,应用程序/用户不需要一次这么大的约会。 所以我们决定使用分页和偏移(在 solr 方面)。 Solr 现在只返回 30-50 个结果(取决于用户应用程序环境的分页设置)。

这工作非常快。

//编辑:除了CSV over http,还有其他方法可以获取solr搜索结果吗?

有不同的格式,例如 XML、PHP、CSV、Python、Ruby 和 JSON。要改变这一点,你可以使用wt参数,比如....&wt=json

http://wiki.apache.org/solr/CoreQueryParameters#wt

http://wiki.apache.org/solr/QueryResponseWriter

//编辑#2

另一种方法可能不仅仅是将数据索引到 solr。您可以(额外)将数据存储到 solr,以便从 solr 获取数据并且无需 MySQL 数据即可生存。 这取决于你的数据,如果这对你来说是一种方式......

【讨论】:

  • 我认为你的观点很好。但是我们在大型数据挖掘过程中使用它 - 所以检索所有数据总是会发生。我怀疑极长的 mysql 查询也是瓶颈。
  • 我不确定您的环境如何,但我们正在运行 solr insight tomcat。因此,减少从 Solr 到应用程序的流量的一种方法是在 tomcat(solr) 端启用 gzip 压缩:viralpatel.net/blogs/enable-gzip-compression-in-tomcat 但这不会减少您必须发送到 MySQL 服务器的大型 MySQL 查询。
  • @Daehee Han ...请看一下我的评论和我的回答的编辑#2
【解决方案2】:

Solr 提供了一种将结果导出为CSVJSON 的方法
100万+仍然是一个很大的集合。您总是可以分批进行。

【讨论】:

    【解决方案3】:

    您不能将所有 MySQL 数据库检索到 Solr 吗?

    您可以使用DIH ( Data Import Handler ) 从 MySQL 中检索所有数据并轻松添加到 Solr。

    然后您将在一个地方获得所需的所有信息,我认为您将获得更好的性能。

    【讨论】:

    • 我不认为,数据导入是这里的重点。
    • 我认为他使用关键字搜索 solr 以找到 pk 并使用此 PK 搜索 mySQL 以获取数据。我说如果数据都在 Solr 中,效率会高很多
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 2017-12-06
    • 2011-01-10
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多