如何在非常大的数据库中搜索多个字符串

How to search for multiple strings in very large database

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

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

你可以选择 elasticsearch、solr 或 lucene

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

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

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

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

一个选项是将数据保存在 orcale 上,在 solr 中搜索和 return 文档的 ID,以便仅加载一行表格 oracle,由 ID 引用。 第二个选项是将 oracle 作为搜索引擎的基础数据池并在 solr(或 elasticsearch)中搜索,以便 return 来自 solr 的整个 document/row,而不仅仅是 ID。所以你不需要再从数据库中加载数据了。

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