开源的全文搜索引擎总结,chatbot和chatgpt项目必备资源

news2024/10/5 16:31:04

全文搜索引擎就是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户。

1、Apache Lucene Java 全文搜索框架

许可证:Apache-2.0 开发语言:Java 官网:https://lucene.apache.org/

Apache Lucene 是完全用 Java 编写的高性能、功能齐全的全文检索引擎架构,提供了完整的查询引擎和索引引擎、部分文本分析引擎。目的是为软件开发人员提供一个简单易用的工具包,以方便地在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。

项目地址:https://www.oschina.net/p/lucene

2、Apache Solr 全文搜索服务器

许可证:Apache-2.0 开发语言:Java 官网:https://solr.apache.org/

Apache Solr 是基于 Lucene 的全文搜索服务器,也是最流行的企业级搜索引擎,其主要功能包括全文检索、命中高亮、分面搜索、动态聚类、数据库集成,以及对富文本(如 Word、PDF)的处理。Solr 高度可扩展,并提供了分布式搜索和索引复制,Solr 4 还增加了 NoSQL 支持。

项目地址:https://www.oschina.net/p/solr

3、Elasticsearch 分布式搜索引擎

许可证:Apache-2.0 开发语言:Java 官网:https://www.elastic.co/cn/elasticsearch/

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储你的数据,让你飞快完成搜索,微调相关性,进行强大的分析,并轻松缩放规模。

项目地址:https://www.oschina.net/p/elasticsearch

4、Nutch 搜索引擎

许可证:Apache-2.0 开发语言:Java 官网:https://nutch.apache.org/

Nutch 是一个开源 Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和 Web 爬虫。

Nutch 的创始人是 Doug Cutting,他同时也是 Lucene、Hadoop 和 Avro 开源项目的创始人。

项目地址:https://www.oschina.net/p/nutch

5、RediSearch 高性能全文搜索引擎

许可证:AGPL 开发语言:C/C++ 官网:https://redis.io/docs/stack/search/

RediSearch 是一个高性能的全文搜索引擎,可作为一个 Redis Module 运行在 Redis 上,是由 RedisLabs 团队开发的。实现了Redis的查询、二级索引和全文搜索。这些功能在文本查询的基础上实现了多字段查询、聚合、精确短语匹配、数字过滤、地理过滤和矢量相似性语义搜索。

项目地址:https://www.oschina.net/p/redisearch

6、Sphinx Search 全文搜索引擎

许可证:GPL 开发语言:C/C++ 官网:http://sphinxsearch.com/

Sphinx 是一个开源的全文搜索服务器,从头开始设计时就考虑到了性能、相关性(又名搜索质量)和集成的简单性。它是用 C++ 编写的,适用于 Linux(RedHat、Ubuntu 等)、Windows、MacOS、Solaris、FreeBSD 和其他一些系统。

Sphinx 让你可以快速轻松地批量索引和搜索存储在 SQL 数据库、NoSQL 存储或文件中的数据,或者即时索引和搜索数据,使用 Sphinx 就像使用数据库服务器一样。各种文本处理功能可以根据你的特定应用程序要求微调 Sphinx,并且许多相关功能确保你也可以调整搜索质量。

项目地址:https://www.oschina.net/p/sphinxsearch

7、ftserver 轻量精准全文搜索服务器

开发语言:Java FTServer (FTS) 是一个轻量精准全文搜索服务器,使用英文规则处理英文,使用中文规则处理中文,不需要切割中文为单词,可以支持中文字的任意排列,精准搜索中文长句子,轻松处理古文古诗词,写意句子不影响搜索,不依赖词库,搜索中文不漏词。非常容易按需定制,直接编译就可以使用,无需额外配置,同时可以嵌入到各种应用内部。

项目地址:https://www.oschina.net/p/ftserver

8、Xapian C++检索引擎

许可证:GPL 开发语言:C/C++ 官网:https://xapian.org/

Xapian 是一个用 C++ 编写的全文检索程序,他的作用类似于 Java 的 lucene。尽管在 Java 世界 lucene 已经是标准的全文检索程序,但是 C/C++ 世界并没有相应的工具,而 Xapian 则填补了这个缺憾。

Xapian 是一个高度适应性的工具包,它允许开发人员轻松地将高级索引和搜索工具添加到他们自己的应用程序中。它内置支持多个权重模型系列,还支持一组丰富的布尔查询运算符。

项目地址:https://www.oschina.net/p/xapian

9、Hibernate Search Hibernate搜索框架

许可证:LGPL 开发语言:Java 官网:https://hibernate.org/search/

Hibernate Search 的作用是对数据库中的数据进行检索的。它是 hibernate 对著名的全文检索系统 Lucene 的一个集成方案,作用在于对数据表中某些内容庞大的字段(如声明为 text 的字段)建立全文索引,这样通过 hibernate search 就可以对这些字段进行全文检索后获得相应的 POJO,从而加快了对内容庞大字段进行模糊搜索的速度(sql 语句中 like 匹配)。

Hibernate Search 自动从 Hibernate ORM 实体中提取数据,以将其推送到本地 Apache Lucene 索引或远程 Elasticsearch 索引。

项目地址:https://www.oschina.net/p/hibernate+search

10、MeiliSearch 轻量搜索引擎

许可证:MIT 开发语言:Rust 官网:https://www.meilisearch.com/

Meilisearch 是 Rust 实现的高性能开源搜索引擎,支持方便地集成到任何网站或应用程序,支持自托管 (self-hosting),可作为 Algolia 和 Elasticsearch 的轻量替代方案。Meilisearch 内置了许多实用功能,比如:

  • 快速的输入即搜索 (search-as-you-type) 体验,也称作 “即时搜索”
  • 支持冗错 / 纠错搜索 (typo tolerance)
  • 支持多面搜索 (faceted search)
  • 支持基于地理位置的搜索 (geosearch)
  • 支持多租户 (multi-tenancy)

Meilisearch 提供了一整套完整的 SDK 和库,让开发者便捷地将其连接到流行的编程语言和 Web 工具。Meilisearch 的搜索功能支持所有语言,对任何使用空格分隔单词的语言以及中文、日语、希伯来语、泰语和韩语都进行了特殊优化。

项目地址:https://www.oschina.net/p/meilisearch

11、Manticore Search C++ 开发的高性能搜索引擎

许可证:GPL-2.0 开发语言:C/C++ 官网:https://manticoresearch.com/

Manticore Search 是一个使用 C++ 开发的高性能搜索引擎,创建于 2017 年,其前身是 Sphinx Search 。Manticore Search 充分利用了 Sphinx,显着改进了它的功能,修复了数百个错误,几乎完全重写了代码并保持开源!这一切使 Manticore Search 成为一个现代,快速,轻量级和功能齐全的数据库,具有出色的全文搜索功能。

来自 MS 官方的测试表明 Manticore Search 性能比 ElasticSearch 有很大的提升。

项目地址:https://www.oschina.net/p/manticoresearch

12、Tantivy 全文搜索引擎库

许可证:MIT 开发语言:Ruby

Tantivy 是一个用 Rust 编写的搜索引擎库,其灵感来自于 Lucene。得益于 Rust 语言加持,Tantivy 性能比 Lucene 要好得多。

项目地址:https://www.oschina.net/p/tantivy

13、Tantiny Ruby 全文搜索引擎库

许可证:MIT 开发语言:Ruby、SHELL、Rust

Tantiny 是一个基于 Tantivy 的 Ruby 的最小化全文搜索库。当你手头的任务需要全文搜索,但配置一个完整的分布式搜索引擎会比任务本身花费更多的时间时,它是非常好的选择。

即使你已经在你的项目中使用了这样的引擎(实际上这是很有可能的),使用 Tantiny 仍然可能更容易,因为与 Solr 和 Elasticsearch 不同,它不需要任何东西来工作(没有单独的服务器或进程或其他什么),它是纯粹的可嵌入的。所以,当你发现自己在使用你所选择的搜索引擎会很麻烦 / 不方便,或者需要额外的设置时,你总是可以回到一个快速和肮脏的解决方案,但还是很灵活和快速。

Tantiny 并不完全是对 Tantivy 的 Ruby 绑定,但它试图接近。主要理念是提供对 Tantivy 倒排索引的低级访问,但具有漂亮的 Ruby 风格的 API、合理的默认设置和附加功能。

项目地址:https://www.oschina.net/p/tantiny

14、DataparkSearch 搜索引擎

许可证:GPL-2.0 开发语言:C/C++ 官网:http://www.dataparksearch.org/

DataparkSearch 搜索引擎是一个 C 语言的全功能的开源基于 Web 的搜索引擎。

项目地址:https://www.oschina.net/p/dataparksearch

15、GoFound 基于 Go 的全文检索引擎

许可证:Apache-2.0 开发语言:Google Go

GoFound 是一个 go 语言全文检索引擎, 基于平衡二叉树 + 正排索引、倒排索引实现。可支持亿级数据、毫秒级查询。使用简单,使用 http 接口,任何系统都可以使用。技术栈:

  • 平衡二叉查找树
  • 二分法查找
  • 快速排序法
  • 倒排索引
  • 正排索引
  • 文件分片
  • golang-jieba 分词
  • leveldb

项目地址:https://www.oschina.net/p/gofound

16、Compass 搜索引擎

许可证:Apache-2.0 开发语言:Java、Perl 官网:http://www.compass-project.org/

Compass 是一个建立在 Lucene 之上的开源项目,旨在简化搜索与任何 Java 应用的整合。Compass 提供了广泛的功能,旨在集成搜索引擎功能。下图显示了不同的 Compass 模块,然后是每个模块的简短描述。

项目地址:https://www.oschina.net/p/compass

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

中文英文翻译-英翻中文在线翻译

如果您需要将大量的英文文件或网页翻译成中文,那么我们的批量翻译英文翻译中文的软件将是您最佳的选择。我们的软件是一款高效、准确、节省时间的翻译工具,可以在最短时间内完成大量英文文本的翻译,让您在工作生活中处处流畅地处理英语文本。…

【云原生进阶之容器】第六章容器网络6.4.3--Flannel网络模式

《云原生进阶之容器》专题索引: 第一章Docker核心技术1.1节——Docker综述第一章Docker核心技术1.2节——Linux容器LXC第一章Docker核心技术1.3节——命名空间Namespace第一章Docker核心技术1.4节——chroot技术第一章Docker核心技术1.5.1节——cgroup综述

算法套路八——二叉树深度优先遍历(前、中、后序遍历)

算法套路八——二叉树深度优先遍历(前、中、后序遍历) 算法示例:LeetCode98:验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只…

网络原理——网络协议

目录传输层协议TCP协议TCP协议格式段TCP原理连接管理可靠传输流量控制拥塞控制延迟应答和捎带应答错误检测TCP异常UDP协议UDP协议格式段UDP协议特点无连接不可靠面向数据报大小受限网络层协议IP协议数据链路层协议​以太网MTUARP协议传输层协议 ​ 传输层负责数据能够从发送端…

学Vue3这一篇就够了!

目录学习Vue的前提是掌握 HTML,CSS,Js中级知识vue介绍声明式渲染条件与循环处理用户输入组件化应用构建Vue与自定义元素的关系应用和组件实例Vue实例根组件组件实例 property生命周期钩子实例的生命周期图模板语法插值文本原始 HTMLAttribute使用 JavaScript 表达式指令参数动态…

不黑学孙溟㠭匪石社寒山寺游记

昔日寒山问拾得曰:世间谤我、欺我、辱我、笑我、轻我、贱我、恶我、骗我、如何处治乎?拾得云:只是忍他、让他、由他、避他、耐他、敬他、不要理他、再待几年你且看他。 经典对话显修行。是否文殊、普贤再来都不重要。因缘使然,朋友…

C++ :JSON 解析系统的设计与实现

JSON JavaScript Object Notation(JavaScript 对象表示法) 定义 存储和交换文本信息的语法,类似 XML; 比 XML 更小、更快,更易解析,属于轻量级的文本数据交换格式; 使用 Javascript语法来描述数据对象,但…

PMP学习笔记

day01 裸考1 题目1: 下列哪一项不属于项目的特征? D A:独特性 B:临时性 C:渐进明细 D:重复性 解析:重复性属于运营 题目2: 在确定项目目标时,应该更加关注哪一个? D A:进度要求 B:成本预算 C:质量标准 D:同等关注进度,成本和质量要求 前沿 管理的基础 三个学…

Hashicorp Vault(金库)

什么是Vault? HashiCorp Vault 是一个基于身份的秘密和加密管理系统。机密是您想要严格控制访问的任何内容,例如 API 加密密钥、密码和证书。Vault 提供由身份验证和授权方法门控的加密服务。使用 Vault 的 UI、CLI 或 HTTP API,可以安全地存储和管理、严格控制(限制)和审…

微服务高级篇【1】之微服务保护

文章目录前言一 初识Sentinel1.1 雪崩问题1.2 解决方法1.3 小结1.4 服务保护技术对比1.5 Sentinel介绍1.6 Sentinel安装1.7 微服务整合Sentinel二 测试工具:Jmeter2.1 Jmeter安装和配置2.2 Jmeter快速入门2.2.1 设置中文语言2.2.2 设置Jmeter桌面快捷图标2.3 Jmeter…

Spring————java的反射机制,Spring的IOC和DI

一、认识Spring 1.1、Spring家族 SpringFramework: Spring框架:是Spring中最早核心的技术,也是所有其他技术及的基础。 SpringBoot:Spring是用来简化开发。而SpringBoot是来帮助Spring在简化的基础上能更快速进行开发。 SpringCloud&#xf…

FreeRTOS 任务相关 API 函数(一)

文章目录一、任务创建和删除 API 函数1. xTaxkCreate()2. xTaskCreateStatic()3. xTaskCreateRestricted()4. vTaskDelete()二、任务创建和删除实验(动态方法)三、任务创建和删除实验(静态方法)一、任务创建和删除 API 函数 FreeRTOS 最基本的功能就是任务管理,而任…

AcWing4957.飞机降落——学习笔记

目录 题目 代码 AC结果 思路 〇、例子 一、获取数据 二、深度优先遍历(DFS) 1.入参 2.出口 3.判断是否找到安全降落方案 4.递推过程 5.回溯过程 6.DFS完整代码 三、输出打印 题目 4957. 飞机降落 - AcWing题库https://www.acwing.com/pr…

打开 plist 文件

​ 对于使用苹果的进阶或资深玩家来说,有时候要编辑plist文件,比如要弄两个qq,要修改info.plist下的sku,而要是没有工具,就不能随意查看和编辑plist文件了。再有,可能要通过修改plist来破解某些游戏&#x…

windows服务器自带IIS搭建网站并发布公网访问【内网穿透】

文章目录1.前言2.Windows网页设置2.1 Windows IIS功能设置2.2 IIS网页访问测试3. Cpolar内网穿透3.1 下载安装Cpolar3.2 Cpolar云端设置3.3 Cpolar本地设置4.公网访问测试5.结语转载自远程源码文章:【IIS搭建网站】本地电脑做服务器搭建web站点并公网访问「内网穿透…

协同数据交换平台详细设计方案(word)

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 1 架构设计 1.1 总体架构协同数据交换平台利用企业服务总线、数据抽取ETL、消息中间件、大文件传输等相关技术,包括文件适配器、数据库适配器、Web服务中间件等在内…

【排序算法(四)】归并排序计数排序(非比较排序)以及八大排序算法的总结

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1、归并排序1.1 算法…

图像处理数据集

BSDS500 Berkeley Segmentation Dataset 500 是第一个用于评估超像素算法的数据集。对于参数优化,使用了验证集。 500张数据集200训练集train100验证集val200测试集test 每张图像有 5 个不同的高质量地面真值分割(groundTruth,是.mat文件) …

Android 中的混音器 AudioMixer 实现分析

Android framework 的音频处理模库 libaudioprocessing (位于 frameworks/av/media/libaudioprocessing) 提供了混音器组件 AudioMixer,它主要用在 audioflinger 里,用来将多路音频源数据混音,以方便送进音频设备播放出来。 音频混音操作本身…

MyBatis(九)MyBatis小技巧

一、#{}和${} #{}:先编译sql语句,再给占位符传值,底层是PreparedStatement实现。可以防止sql注入,比较常用。 ${}:先进行sql语句拼接,然后再编译sql语句,底层是Statement实现。存在sql注入现象。…