0

1251

ubuntu 环境下编译安装 xapiand

乐果   发表于   2023 年 12 月 08 日

Xapiand 是基于开源检索引擎 Xapian 而二次封装开发的支持 RESTfulApi 服务。

在公司的前期项目中,因为需要对一些建筑/场所的坐标进行 经纬度距离排序 ,因此用到 Xapiand 服务, 但因为只是基于 docker 方式简单部署应用,并未对这个服务自身作深入研究,因此在后续 使用过程中,有同事反馈存在 “索引库容易丢失”、“内存居高不下” 等问题。

抱着学习研究的心态,遂尝试拉取源码研究一番,希望捣腾中或许能洞察到同事反馈的那些问题原因。

Xapiand 介绍

XapiandRESTful 搜索引擎, Xapiand 是一种现代的高可用分布式 RESTful 搜索和存储引擎,专为云计算而设计,并考虑了数据局部性。

它需要 JSON (或 MessagePack )文档以及 inde Xapiand

官方站点位于: https://kronuz.io/Xapiand

代码仓库地址:https://github.com/Kronuz/Xapiand

编译安装

拉取代码、编译:

git clone https://github.com/Kronuz/Xapiand.git
cd Xapiand
mkdir build
cmake CNinja ..
ninja

注意,上面编译用了 ninja 编译加速工具,因此需要提前安装类库:

sudo apt install ninja-build

编译过程中可能会存在各种报错,修复即可。

例如如下情况

报错1:

……

标签:xapianc++ 继续阅读

0

8162

Xapian构建索引说明

乐果   发表于   2017 年 05 月 11 日

Xapian与开源

Xapian的官方网站是http://www.xapian.org,这是一个非常优秀的开源搜索引擎项目,搜索引擎其实只是一个通俗的说法,正式的说法其实是IR(Information Retrieval)系统。Xapian的License是GPL,这意味着允许使用者自由地修改其源码并发布之。Xapian的中文资料非常少,可以说现在互联网上连一篇完整详细的Xapian中文介绍文档,更别说中文API文档了。其实,Xapian的英文资料也不多,除了官方网站上的Docs和Wiki外,还有一些网站上的邮件列表,在这方面跟Lucene没得比。当然,Lucene现在已经发展到2.x版本了,而Xapian的最新版本才1.012,国外开源项目一般对版本号控制得比较严格,一个项目一般到了1.x才算稳定和成熟的。

Xapian可以运行在那些平台?

Xapian由C++编写,但可以绑定到Perl, Python, PHP, Java, Tcl, C# 和Ruby甚至更多的语言,Xapian可以说是STL编程的典范,在这里您可以找到熟悉的引用计数型智能指针、容器和迭代器,甚至连命名也跟STL相似,相信一定能引起喜好C++和STL的你的共鸣(实际上,很少C++程序员完全不使用STL)。由于Xapian使用的是STL和C运行时库,因此具有高度可移值性,官方说法是可以运行在Linux、 Mac OS X、 FreeBSD、 NetBSD、 OpenBSD、Solaris,、HP-UX,、Tru64和IRIX,,甚至其它的Unix平台,在Microsoft Windows上也跑得很好。当然,并不能像Java那样“一次编译,到处可以运行”,当移植到其它平台时,一般来说是需要重新编译的。至于如何在Windows32位系统下编译Xapian,请查阅我以前写的文章《nmake在windows平台下编译xapian》。

Xapian的特性

……

标签:xapian 继续阅读

0

3847

xapian主从部署

乐果   发表于   2014 年 12 月 02 日

一、实际需求

在一个实际的大型部署中,检索的客户端往往以remote方式对索引库进行检索,而非files进行检索。 这是因为大型应用中,因负载较大,单台已经不能支撑起整个检索的任务。

remote是以tcp协议走socket接口,这样就可以将检索任务独立出来进行部署。 实际上,仅仅独立部署还是不够的,当负载进一步加大,就需要分布式部署,最简单的方式就是设置“一主多从”—即主从部署。

其中有一台“主服务”负责索引库的写入(更新),其他的“从服务”定期从“主服务”中批量更新并负责读取(检索)。

二、实际部署步骤

现在假设有两台服务器

a `192.168.1…….

标签:xapian 继续阅读

0

4027

xapian安装(PHP版)

乐果   发表于   2014 年 11 月 29 日

1、scws安装

sudo wget http://www.xunsearch.com/scws/down/scws-1.2.2.tar.bz2
sudo tar -jxvf scws-1.2.2.tar.bz2
cd scws-1.2.2/
./configure --prefix=/usr/local/scws
sudo make && make install
sudo mkdir /usr/include/scws
ln -sf /usr/local/scws/include/scws /usr/include

……

标签:xapianPHPubuntu 继续阅读