我想在一个非常大的数据库中搜索多个字符串。这些字符串是数据库表的不同属性的一部分。我在sql查询中尝试使用LIKE
进行字符串搜索。但是要花很多时间才能得到结果。我使用过Oracle数据库。
我应该使用数据库索引吗?我发现可以使用Lucene
。
我也有一些使用大数据概念的建议。我应该使用哪种方法?
答案 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