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

时间:2015-01-22 06:22:21

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

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

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

2 个答案:

答案 0 :(得分:3)

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

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

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

我几年前也遇到过同样的情况。试图在大型数据库中搜索文本。在我发现诡计之后,基于数据库的搜索将永远无法达到专用搜索引擎的性能。并且:如果你使用solr(例如),你将有更多的搜索功能,如拼写纠正,"更像是这样",......

一个选项是将数据保存在orcale上,在solr中搜索并返回文档的ID,以便只加载oracle的一行,ID由ID引用。 第二个选项是将oracle作为搜索引擎的基础数据池,并在solr(或elasticsearch)中搜索,以便从solr返回整个文档/行,而不仅仅是ID。因此,您不再需要从数据库加载数据。

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

答案 1 :(得分:1)

您可以选择elasticsearch,solr或lucene