【问题标题】:How to search for multiple strings in very large database如何在非常大的数据库中搜索多个字符串
【发布时间】:2015-01-22 06:22:20
【问题描述】:

我想在一个非常大的数据库中搜索多个字符串。这些字符串是数据库表不同属性的一部分。我尝试在 sql 查询中使用 LIKE 进行字符串搜索。但是要花很多时间才能得到结果。我用过Oracle数据库。

我应该使用数据库索引吗?我发现Lucene 可以用于它。 我也得到了一些使用大数据概念的建议。我应该使用哪种方法?

【问题讨论】:

  • Oracle 文本怎么样?

标签: oracle lucene bigdata fuzzy-search string-search


【解决方案1】:

最简单的方法是: 1.) 为您想要搜索的列添加索引 2.) 使用 @lalitKumarB 所写的 oracle 文本

最强大的方法是: 3.) 使用单独的搜索引擎(solr、elaticsearch)。

但是,您可能必须更改应用程序才能显式使用搜索索引来搜索数据,...

几年前我也遇到过同样的情况。试图在大型数据库中搜索文本。经过一段时间我发现,基于数据库的搜索永远无法达到专用搜索引擎的性能。并且:如果您使用 solr(例如),您将拥有更多开箱即用的搜索功能,例如拼写更正、“More like this”、...

一种选择是将数据保存在 orcale 中,在 solr 中搜索并返回文档的 ID,以便仅加载由 ID 引用的 oracle 表单中的一行。 第二个选项是将 oracle 作为您的搜索引擎的基本数据池并在 solr(或 elasticsearch)中搜索,以便从 solr 返回整个文档/行,而不仅仅是 ID。这样你就不需要再从数据库中加载数据了。

最佳选择取决于您的需求。

【讨论】:

  • @hp36 请将此答案标记为正确,如果它是最有帮助的。
  • 我们可以在 elaticsearch 或 solr 中使用模糊字符串匹配吗
  • 哪个更适合模糊搜索(或近似字符串搜索)- elaticsearch 或 solr.... @The Bndr
  • 我对elasticsearch的所有功能都不了解。两者都使用 lucene。所以他们有相同的基础。据我所知,elasticsearch 在扩展方面比 solr cloud 更好。但是 Solr 有更多或更好的工作特性。 Solr 能够做到这一点。 pairs~ paris、pairs、.... 或 `newslattar~0.5' 之类的术语
  • 我找到了一个链接,用于比较 elaticsearch 和 solr...Click here
【解决方案2】:

您可以在 elasticsearch、solr 或 lucene 之间进行选择

【讨论】:

  • lucene 是一个库,而 solr 和 elaticsearch 是使用 lucene 的应用程序
  • 我们可以在 lucene 上开发一些东西,不是吗?
  • 原因。但看起来,“lucene”世界对于@hp36 来说是新的。因此,可能会发生有人将 lucene 等价物视为应用程序,例如 solr。 Lucene 不是像 solr 那样开箱即用的工作解决方案。这就是我写这篇评论的原因。
猜你喜欢
  • 2014-03-17
  • 2011-03-26
  • 2021-01-22
  • 1970-01-01
  • 1970-01-01
  • 2011-11-04
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
相关资源
最近更新 更多