文档章节

xunsearch的索引导入及php应用例子

w
 win_ball
发布于 2017/08/30 11:24
字数 670
阅读 61
收藏 0
点赞 0
评论 0

1.启动xunsearch

/usr/local/xunsearch/bin/xs-ctl.sh start

 

2.创建项目配置

官方的配置教程:http://www.xunsearch.com/doc/php/guide/ini.first

官方的配置辅助工具:http://www.xunsearch.com/tools/iniconfig

project.name = blog    
server.index = 8383    
server.search = 8384    
[aid]    
type = id    
[title]    
type = title    
[content]    
type = body

配置的几点说明:

(1).配置内容存放在 /xunsearch/sdk/php/app/blog.ini中

(2).配置的项目名为blog

(3).aid字段是主键、title字段是我的文章标题、content字段是我的文章内容,字段数可多可少,但必须要有个主键字段

 

3.建立索引,这部分是用xunsearch自带的工具为原有的数据创建索引,如果原来没有数据,创建索引也没多少意义

执行创建索引命令格式:

util/Indexer.php --rebuild --source=mysql://你的数据库用户名:你的数据库密码@你的数据库IP/你的数据库名 --sql="你要执行的SQL语句" --filter=debug --project=你的项目名 >日志文件名

 

切换到sdk目录

cd /usr/local/xunsearch/sdk/php

我们来为我们的例子创建索引

 

util/Indexer.php --rebuild --source=mysql://root:123456@127.0.0.1/blog --sql="SELECT aid,title,content FROM article" --filter=debug --project=blog >log.txt

说明:我是在本机装的,用的是root用户,密码123456,blog数据库,article数据表,日志写到当前目录/usr/local/xunsearch/sdk/php下的log.txt文件内

 

4.测试搜索

数据库blog中的article表已经有3条数据

 

HTML的搜索代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/html">
<head lang="en">
    <meta charset="utf-8">
    <title>搜索</title>
</head>
<body>
<h3>全文搜索在php程序中应用</h3>
<form action="search.php" method="post">
    输入搜索的关键词:
    <input type="text" name="keyword" />
    <input type="submit" value="搜索" />
</form>
<hr />

</body>
</html>

 

search.php代码

<?php
/**
 * Created by me
 * User: 09
 * Date: 2017/8/29
 * Time: 16:23
 */

#引入接口文件
require '/usr/local/xunsearch/sdk/php/lib/XS.php';  // 引入 xunsearch sdk
if($_POST['keyword'] != ''){
    $keyword = trim($_POST['keyword']);             // 接收关键词
    $xs = new XS('blog');                           // blog为项目名称,配置文件是:$sdk/app/blog.ini
    $search = $xs->search;                          // 获取搜索对象
    $search->setQuery($keyword);                    // 加入搜索关键词
    $docs = $search->search();                      // 搜索
    var_dump($docs);

    echo "<table border='1' cellspacing='0'><tr><th>标题</th></tr>";
    foreach ($docs as $doc) {
        $subject = $search->highlight($doc->title); //  高亮处理标题
        echo "<tr><td>".$subject."</td></tr>";
    }
    echo "</table>";

}

 

 

遇到的问题:

1.第一步启动xunsearch一定要做

2.cd 到/usr/local/xunsearch/sdk/php  就可以了,如果长度到/usr/local/xunsearch/sdk/php/util 目录,直接使用Indexer.php --rebuild --source=mysql....... 会出现 Indexer.php: command not found

3.注意建立索引的命令格式和写法,我这里使用localhost会出现 PHP Warning:  mysqli::__construct(): (HY000/2002): No such file or directory in /data/tool/sdk/php/util/XSDataSource.class.php on line 627    ,所以改成127.0.0.1或你的服务器IP

© 著作权归作者所有

共有 人打赏支持
w
粉丝 0
博文 42
码字总数 12805
作品 0
广州
tp5整合xunsearch全文检索

应用场景:大量数据的模糊搜索,数据统计分析等场景,xunsearch的索引中只维护id和检索字段,例如id和content,可以保证索引的简单易维护性和命中速度,同时可以根据id字段配合mysql精确查找...

谢百川
05/20
0
0
xunsearch数字搜索的特殊处理

有个场景,需要使用xunsearch支持手机号的搜索,特别要用户一边输入一遍搜索。于是涉及到通过一串数字的前缀,来搜索的问题。 xunsearch的默认分词器达不到效果,最相近的XSTokenizerXlen,默...

深蓝苹果
2015/11/18
0
0
xapian-xunsearch的后端

Xapian 是一款开源的C++信息检索系统,内部系统试用了xunsearch,因此稍微了解了一下“虾片”的机制 先看一下执行过程: 检索相关: Xapian::Database 用于读取索引。 Xapian::Enquire 提供检...

深蓝苹果
2013/10/25
0
0
全文检索 Api 应用框架--alconSeek

尔康搜索(alconSeek)是一个让你极其方便地开发全文检索 Api 的应用骨架。 一. 依赖: 1). LNMP环境 搭建可参考:https://github.com/farwish/delicateShell/tree/master/lnmp 2). Composer工具...

farwish
2016/11/30
858
1
Xunsearch 1.2.0,开源的PHP全文搜索引擎

迅搜(xunsearch)是采用 C/C++ 基于 xapian 和 scws 开发的全文搜索引擎解决方案,提供 PHP 语言的开发接口。支持海量数据高速检索,功能强大,简单易用,是 PHP 开发的 WEB 应用的全文检索首...

hightman
2011/12/12
869
1
centos7 使用php时显示/user/bin/env:php 没有那个文件或目录

在使用xunsearch初始化索引的时候使用: /home/xunsearch/sdk/php/util/Indexer.php --source=mysql://demo:demo@localhost/database --sql="select id,content,hotword from tb_roast" 报错......

白与黑
2017/04/05
210
2
xunsearch-1.3.3,加入DEMO服务器

Xunsearch 是免费开源的中文全文检索解决方案,旨在帮助一般开发者针对既有的海量数据,快速而方便地建立自己的全文搜索引擎。全文检索可以帮助您降低服务器搜索负荷、极大程度的提高搜索速度...

hightman
2012/11/21
1K
6
xunsearch-1.4.9,开源中文搜索引擎

本软件趋于稳定,版本发布速度放缘,久违了,这次加入支持通过 composer 管理 PHP-SDK,并加入 yii2 扩展支持!非常高兴能在今晚发布 xunsearch-1.4.9 正式稳定版,强烈建议所有用户升级到这...

hightman
2015/04/02
2.2K
28
Xunsearch 1.1.0 正式版,全文搜索引擎

感谢 @hightman 的投稿: 经常一段时间的仔细测试和调校,很高兴于今天发布 Xunsearch 1.1.0 正式版。 这次修订主要是开发了一些新功能,同时修正了一些小BUG,强烈各位用户建议升级到该最新...

红薯
2011/11/14
850
0
xunsearch-1.0.0 正式版 (基于xapian/scws/php的开源中文全文搜索引擎)

经过 2 周如火如荼的测试和修正,很高兴如期发布 xunsearch-1.0.0 正式稳定版,这也是 xunsearch 的第一个正式版本。 Xunsearch 是免费开源的专业全文检索解决方案,旨在帮助一般开发者针对既...

hightman
2011/09/23
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式 Factory工厂模式 Singleton单例模式 Delegate委派模式 Strategy策略模式 Prototype原型模式 Template模板模式 Spring5 beans 接口实例化 代理Bean操作 ...

小致dad
11分钟前
0
0
SpringBoot | 第十章:Swagger2的集成和使用

前言 前一章节介绍了mybatisPlus的集成和简单使用,本章节开始接着上一章节的用户表,进行Swagger2的集成。现在都奉行前后端分离开发和微服务大行其道,分微服务及前后端分离后,前后端开发的...

oKong
今天
9
0
Python 最小二乘法 拟合 二次曲线

Python 二次拟合 随机生成数据,并且加上噪声干扰 构造需要拟合的函数形式,使用最小二乘法进行拟合 输出拟合后的参数 将拟合后的函数与原始数据绘图后进行对比 import numpy as npimport...

阿豪boy
今天
9
0
云拿 无人便利店

附近(上海市-航南路)开了家无人便利店.特意进去体验了一下.下面把自己看到的跟大家分享下. 经得现场工作人员同意后拍了几张照片.从外面看是这样.店门口的指导里强调:不要一次扫码多个人进入....

周翔
昨天
1
0
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。 简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之...

路小磊
昨天
202
1
npm profile 新功能介绍

转载地址 npm profile 新功能介绍 npm新版本新推来一个功能,npm profile,这个可以更改自己简介信息的命令,以后可以不用去登录网站来修改自己的简介了 具体的这个功能的支持大概是在6这个版...

durban
昨天
1
0
Serial2Ethernet Bi-redirection

Serial Tool Serial Tool is a utility for developing serial communications, custom protocols or device testing. You can set up bytes to send accordingly to your protocol and save......

zungyiu
昨天
1
0
python里求解物理学上的双弹簧质能系统

物理的模型如下: 在这个系统里有两个物体,它们的质量分别是m1和m2,被两个弹簧连接在一起,伸缩系统为k1和k2,左端固定。假定没有外力时,两个弹簧的长度为L1和L2。 由于两物体有重力,那么...

wangxuwei
昨天
0
0
apolloxlua 介绍

##项目介绍 apolloxlua 目前支持javascript到lua的翻译。可以在openresty和luajit里使用。这个工具分为两种模式, 一种是web模式,可以通过网页使用。另外一种是tool模式, 通常作为大规模翻...

钟元OSS
昨天
2
0
Mybatis入门

简介: 定义:Mybatis是一个支持普通SQL查询、存储过程和高级映射的持久层框架。 途径:MyBatis通过XML文件或者注解的形式配置映射,实现数据库查询。 特性:动态SQL语句。 文件结构:Mybat...

霍淇滨
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部