如何选择搜索型数据库?
创始人
2024-07-12 06:01:58

搜索型数据库除了存储数据外,还为数据编制索引,因此用户可以使用关键字搜索数据集合。目前有多种搜索型数据库可供选择,让我们来看看大家比较关注的一些常见功能。

Apache Lucene 索引

Apache Lucene 是一个用 Java 编写的开源库,支持跨平台。Lucene 是最常用的搜索引擎软件之一,被 Apache Solr 和 Elasticsearch 等采用。因为它具有高性能和各种功能,如全文搜索、增量和批量索引、较少的 RAM 需求、排序、具有合并结果的多个索引、连接和分组、可插拔的排名模型以及可配置的搜索引擎。它还支持基于排名和字段的搜索结果,以及不同类型的查询,如短语、通配符、范围和邻近性查询。

文档格式

大多数搜索型数据库支持以 JSON、XML 和 CSV 等常用格式解析文档并编制索引。对于其他文档格式,大多数搜索型数据库都支持 Apache Tika。Tika 是一个软件工具包,支持上千种不同文件类型的文本和元数据提取。

全文搜索

有些搜索型数据库只搜索预定义的标题、元数据或文档摘要,而不是完整的文档文本。可以通过使用关键字、指定字段或短语,或根据与搜索词相近的词进行近似搜索来改进全文搜索。

近实时搜索

近实时(NRT)搜索可在更新完成后的几毫秒内对文档进行搜索。NRT 对用户是透明的,通过有效的 RAM 管理和使用 RAM 来缓存更新,而不是将每次更新与磁盘同步,从而减少了输入/输出 (I/O) 开销。

模式 API(Schema API)

Lucene 支持使用 HTTP URL(语法为 http://:/solr/)搜索集合的 Schema API。使用模式 API,可以添加、更新、搜索和删除集合中的字段。支持的输出格式有 JSON 和 XML。

词干化(Stemming)

词干化是将转折词还原为词干,这样在搜索某个术语时,也会返回带有转折词的文档。例如,下面是从三个不同的文档中提取的三个语句:

  • 经过大量测试,应用程序已经开发完成(developed)。
  • 应用程序正在开发中(development)。
  • 开发应用程序需要大量测试(develop)。

如果这三个文档都被编入索引,在不支持词干处理的情况下,搜索 “develop ”只会返回第三个文档。但如果支持词干处理,则会返回带有“development”和“developed”转折词的文档。

分布式、可扩展和高可用性

大多数搜索型都是分布式的,这意味着它们部署在机器集群上,使数据库具有容错性。大家也比较关注搜索型数据库是否具有可扩展性,以便根据需要增减集群规模。分片用于对索引数据进行分区,这样分片本身就可以复制,从而实现高可用性。

这些功能是大多数搜索型数据库的共同特点,因此在数据库选型时,请结合业务场景需要选择。

关于作者

Deepak Vohra

相关内容

热门资讯

山东移动济南分公司完成济南区域... 为全力支撑“客户分层分级运营及服务体系”市场策略,近日,山东移动济南分公司顺利完成2025—2026...
宁德时代曾毓群称2030年前固... 6 月 16 日消息,据《财经》上周报道,宁德时代董事长曾毓群在接受采访时,谈到了固态电池的未来发展...
小米SU7与新一代SU7用户画... 【CNMO科技消息】6月16日,杰兰路发布《小米SU7与新一代SU7用户画像对比》。最新用户画像数据...
墨水屏手机推荐Bigme Hi... 目前,Bigme 新一代墨水屏手机 HiBreak Dual 双屏手机和上一代旗舰 HiBreak ...
中国非IA芯片服务器市场份额,... 近日,国际数据公司(IDC)发布了《中国非IA芯片服务器市场份额》报告。其中显示,2025年,中国非...