当前位置: 首页 > 软件库 > 程序开发 > 搜索引擎 >

Xapian

C++检索引擎
授权协议 GPL
开发语言 C/C++
所属分类 程序开发、 搜索引擎
软件类型 开源软件
地区 不详
投 递 者 楚畅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

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

Xapian的api和检索原理和lucene在很多方面都很相似,但是也有一些地方存在不同,具体请看Xapian自己的文档:http://www.xapian.org/docs/

Xapian除了提供原生的C++编程接口之外,目前还提供了 Perl、 Python 2、 Python 3、 PHP、 Java、 Tcl、 C#、 Ruby、 Lua、 Erlang、 Node.js 和 R 编程接口和相应的类库,所以你可以直接从自己喜欢的脚本编程语言当中使用Xapian进行全文检索了。

 

  •        在上一篇《利用Xapian构建自己的搜索引擎:Database》里指出database是Xapian的基础,而这一篇里讲到的documents、terms和values则是索引和查询的必要组成部分。 Documents 、terms and posting 在信息检索(IR)中,我们企图要获取的项称之为“document”,每一个document是被一个terms集合所描述的。 “d

  •  1.   Xapian的官方网站是http://www.xapian.org,是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。 2.   Xapian的License(版权许可证)是GPL,意味着允许使用者自由地修改其源码并发布之。Xapian允许开发人员添加高级索引和搜索功能到他们的应用系统。 GNU:一

  • xapian是啥玩意? xapian 是个“Xapian 是个开源概率论信息检索库,基于GPL发布。他是用C++编写的,提供的绑定能够支持其他语言(支持Perl, Python, PHP, Java, and TCL )的研发。 Xapian 设计为一个高度可适应的工具集,能够让研发人员方便地为他们自己的应用程式增加高级索引和搜索功能。” 在网上找到这段介绍后,俺手痒痒就想试试xapian ?-

  • xapian Xapian基础 Xapian和Omega是独立的组件,旨在共同提供索引和搜索功能。 Xapian组件提供了数据库功能(用于存储信息)的核心,以及用于查找单词和单词组合的搜索和检索系统(请参阅参考资料 )。 Omega组件提供了将信息从各种格式转换和解析为Xapian所需的原始文本的工具,以便可以对其进行索引。 Omega利用多种工具(例如pdftotext ,然后提交经过翻译和过滤

  • 这篇文章主要为大家详细介绍了python+xapian 构建高速检索引擎的简单示例,具有一定的参考价值,可以用来参考一下。 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! 首先弄明白几个概念:Documents 、terms and posting在信息检索(IR)中,我们企图要获取的项称之“document”,每一个document是被一个terms集合所

  • 在信息检索(IR)中,我们企图要获取的项称之为“document”,每一个document是被一个terms集合所描述的。 “document”和“term”这两个词汇是IR中的术语,它们是来自“图书馆管理学”的。通常一个document认为是一块文本,. Usually a document is thought of as a piece of text, most likely in a m

  •   关键字:搜索引擎、Xapian   一篇拖了两三年的入门总结文章,今天发出来,一方面是自己的总结,另一方面是给自己和他人的备忘。读者需要对搜索引擎有初步了解,譬如了解倒排、term、doc、相似度打分等概念。        Xapian是一个C++搜索引擎内核,提供了类似Lucene的功能,功能没有Lucene丰富,但可以满足常见的搜索需求:倒排检索、与或非查询、相关性打分排序等。      

  • 这篇文章主要为大家详细介绍了php 利用xapian按照数字范围进行检索的简单示例,具有一定的参考价值,可以用来参考一下。 对xapian按照数字范围进行检索的php范例代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! xapian按照数字范围进行检索的php范例代码,对通过add_value方法添加的属性进行范围搜索。 /** * xapian按照数字范围进行检索的php范例代码

  • 如何输出xapian-debug的log xapian内部关系调用比较复杂, 想要了解内部的函数调用关系比较有难度, 好在内部使用LOGCALL_CTOR等输出了很多log, 如何打印这些log呢? 命令如下 cd xapian-core-1.4.5 # xapin-source downloaded # install mkdir BUILD cd BUILD ../configure --e

  • Lucene 系别:JAVA 基于Java的一个开放源代码的全文检索引擎工具包,注意是工具包,所以严格来说它并不是一个搜索引擎服务程序,开发者需要了解搜索引擎的基本原理和Lucene的用法,然后根据需求用Java来开发。 Elasticsearch 系别:JAVA 基于Lucene,仅支持json(可通过插件支持各种主流富文本),索引插入效率高,对比solr更适合近实时查询,但是对历史数据查询速度

  • Reference: http://www.totogoo.com/article/115/xapian-desc.html   Xapian与开源 Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意

  •     本文主要记录Xapian的内存索引在添加文档过程中,做了哪些事情。     内容主要为函数执行过程中的流水线。     demo代码: Xapian::WritableDatabase db = Xapian::InMemory::open(); Xapian::Document doc; // 添加文档的,T表示字段名字,TERM内容为世界,position为1

  •     本文属于文档检索过程分析的一部分,重点分析文档匹配百分比(percent)的计算过程。 1 percent是什么?     我们之前分析的检索demo: Xapian::Query term_one = Xapian::Query("T世界"); Xapian::Query term_two = Xapian::Query("T比赛"); Xapian::Query query = Xap

  • xapian安装: $ su enter your root password # rpm -ivh http://rpm.eprints.org/rpm-eprints-org-key-1-1.noarch.rpm # rpm -ivh http://rpm.eprints.org/xapian/6/noarch/rpm-eprints-org-xapian-6-1.noarch.rpm # y

  • 经过前面几篇的介绍,如果再参考一下Omega的话,估计应该可以顺利创建database和往database里添加document了。有了数据,下一步关心的当然是怎样将它们查出来,在一个IR系统(不单止Xapian)中,检索的方式是多元化的,排序则是多样化的,结果则是人性化的,这就是跟关系数据库相比的最大优势。由于内容较多,因此将检索、排序和取得结果分开讲述,这一篇先讲述如何检索。 IR系统有这么多

  • The Xapian Project The Xapian Project Welcome to the Xapian project website. Xapian is an Open Source Search Engine Library, released under the GPL. It's written in C++, with bindings to allow use fro

  • 在信息检索(IR)中,我们企图要获取的项称之为“document”,每一个document是被一个terms集合所描述的。“document”和“term”这两个词汇是IR中的术语,它们是来自“图书馆管理学”的。通常一个document认为是一块文本,. Usually a document is thought of as a piece of text, most likely in a ma

  • 前言 redmine_xapian是redmine的一個plugin,它的plugin頁面及github頁面分別為redmine_xapian及xelkano/redmine_xapian。 有了它我們就可以搜索檔案(包括txt,docx,pdf,…)裡的內容。它也可以搜索project下repository裡的檔案內容。 要注意的是它不能跟另外一個plugin: redmine_full_tex

  • Xapian与开源 Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档,

  • 1.Xapian之数据写 下面我给出xapian最简单的数据写的例子,以这个例子,我们走完数据写的流程。 void WriteDB::init(XapianType::Document& tmp) {     Xapian::Document docTmp;       docTmp.add_value(0, tmp.valueV1);     docTmp.add_value(1, tmp.va

  • xapian 是一个“Xapian 是一个开源概率论信息检索库,基于GPL发布。它是用C++编写的,提供的绑定可以支持其它语言(支持Perl, Python, PHP, Java, and TCL )的开发。 Xapian 设计为一个高度可适应的工具集,可以让开发人员方便地为他们自己的应用程序增加高级索引和搜索功能。” 在网上找到这段介绍后,俺手痒痒就想试试xapian —- 一定要给php整个这

  • 在Xapian1.0之前,是使用quartz作为database文件格式的,不过自从1.0之后,便改用Flint作为database的文件格式了。有时候,我们会将database称为“索引”,在Xapian中,索引通常比被索引的documents还要多,这表示Xapian做一个信息检索系统比做一个信息存储系统更适合。    Database的存储结构 Xapian的database是所有用于检索的

  • Xapian与开源 Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档,

  • Xapian之数据读 Xapian数据查找的最基本的步骤的伪代码,我以此为例来简单的说下xapian的数据查找。 Xapian::Database db(STR_PATH); Xapian::Enquire enquire(db); enquire.set_query(Xapian::Query::MatchAll); Xapian::MSet matches = enquire.get_mset

  • 1. xapian基本概念 开篇先聊点相关的基本概念,再说xapian。 1.1 IR 信息检索(Information Retrieval)     在信息检索(IR)中,我们企图要获取的项称之为“document”,每一个document是被一个terms集合所描述的。“document”和“term”这两个词汇是IR中的术语,它们是来自“图书馆管理学”的。通常一个document认为是一块文

 相关资料
  • 我试图比较两个数据帧的差异,使用一个公共键/索引值,该值由帧中的3列组成。 e、 g.假设两列中的列都是:“COL1”、“COL2”、“COL3”、“COL4” 数据帧是df1 然后,我使用了set_index方法: 然后我想遍历df1数据帧,并检查df2数据帧是否有匹配的索引。我尝试过使用以下方法: 但是它返回false(尽管我可以通过打印看到两者的索引都存在)。 我做错了什么? 另外,如何使用

  • 我目前正在重构一个用Symfony 3编写的应用程序,并且严重依赖ORM,我一直在尝试获取一个包含所选列索引的对象/数组。 现在我对PHP PDO相当熟悉,我记得查询结果的基本获取如下所示 (根据我的查询)它会给我一个类似于下面的数组 在理论方面,我尝试使用几个具有水合参数的内置函数 运气不好,我最后得到了这样的东西 有人能帮我或者给我指出正确的方向吗?如何正确地解决这个问题? ----更新了问题

  • 问题内容: 使用JDBC时,我经常遇到类似 我问自己(也包括代码作者)为什么不使用标签来检索列值: 我听到的最好的解释是关于性能的。但是实际上,这使处理速度非常快吗?我不相信,尽管我从未进行过测量。我认为,即使按标签检索会稍慢一些,但它仍具有更好的可读性和灵活性。 因此,有人可以给我很好的解释,避免使用列索引而不是列标签来检索列值吗?两种方法的优缺点(也许涉及某些DBMS)是什么? 问题答案: 默

  • 本文向大家介绍python 全文检索引擎详解,包括了python 全文检索引擎详解的使用技巧和注意事项,需要的朋友参考一下 python 全文检索引擎详解 最近一直在探索着如何用Python实现像百度那样的关键词检索功能。说起关键词检索,我们会不由自主地联想到正则表达式。正则表达式是所有检索的基础,python中有个re类,是专门用于正则匹配。然而,光光是正则表达式是不能很好实现检索功能的。 py

  • 问题内容: 假设此JSON对象: 可以像这样检索“ set2”属性: 有没有一种方法可以通过索引检索“ set2”属性?它是JSON对象的第二个属性。这是行不通的(当然): 因此,假设我要检索JSON对象的第二个属性,但我不知道它的名称-那么我该怎么做? 更新: 是的,我知道对象是无序属性的集合。但是我不认为浏览器会干扰JSON文字/字符串定义的“原始”顺序。 问题答案: JavaScript中的

  • 问题内容: Java中是否有一种方法,只需指定开始索引和结束索引,即可将对象列表从Arraylist获取到另一个ArrayList? 问题答案: 是的,您可以使用以下方法: 这将返回原始列表那部分的视图,它不会复制数据。 如果要复制:

  • 我有一个这种格式的数据框 我希望使用数据帧操作获得基于行的特定值的所有(索引、列)对。所有(索引、列、行值)对都是唯一的。 我研究了这个问题:pythonic方法获取索引,column for value==1 虽然这个问题和我的问题完全一样,但这个问题的答案有点模糊,我无法根据这些答案得到我想要的。 我也看过类似的: a) 从数据框中选择特定索引、列对 b) Python:获取与特定值匹配的行的

  • 问题内容: 我想在elasticsearch中检查索引是否存在。如果不存在,则应创建索引并执行其他功能。我试图找到一个解决方案,但是没有找到完美的解决方案。任何人都可以有解决此问题的任何解决方案。 我正在使用Elasticsearch库。 问题答案: 根据索引操作和源代码,以下应该工作