简单记录一下xunsearch的小坑

概述:

最近做一个项目是类似博客系统的,前台要求标题和内容的搜索,自然就想到全文检索,于是想试一试xunsearch这个开源全文检索引擎。然而调试过程中不算很顺利,这篇文章记录一下遇到的坑。

问题列表:

Missing field of type ID

  $xs = new \XS('article');

这个报错是来自于上面这行代码创建xunsearch对象时报错的,其实查看源码可以知道,官方是默认读取 ‘/安装路径 ‘+’/xunsearch/sdk/php/app/‘’这个路径下对应xxx.ini文件,如果读取不成功就会报该错误,那么其实我们的解决方法也很简单,只需要写成绝对路径就好。

  $xs = new \XS('/usr/local/xunsearch/sdk/php/app/article.ini');

2、[XSException] util/XSDataSource.class.php(187): Not specified any query SQL or db tabl

当我们想根据mysql的数据来创建xunsearch的索引时,会用到官方自带的Indexer.hp 索引管理器来创建,但是无奈尝试多次更换SQL语句都报该错误(即使我在navicat和命令行都测试过SQL语句时正确的),最终解决方法是把官方的例子语句复制下来再改参数解决 。

# 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建
util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql="SELECT * FROM tbl_post" --project=demo


3、type = body 的字段一直无法进行指定字段搜索

https://img-blog.csdnimg.cn/20190320104107613.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RpbV9waHBlcg==,size_16,color_FFFFFF,t_70)

我的这个项目用xunsearch是为给文章标题和内容搜索,于是我根据官方介绍类型对三个字段进行了xunsearch建立索引,分别是主键ID,标题title,内容body,当测试title搜索的时候很顺利就成功找到内容了,然而对body查询的时候,死活不返回内容。于是调试的过程中,我排除了各种原因,最后仔细查看文档才发现,type = body,竟然不支持对应字段的搜索。。。

在这里插入图片描述

总结:

其实xunsearch该全文检索引擎已经是很优秀的开源作品了,但是官方的文档还有更多优化的空间,除此之外,方便广大开发者使用,而且最好建立一个论坛,即使官方对一些功能上的描述不完善的,我们这些开发者使用过程中如果遇到的也可以进行反馈和交流。最后,还是感谢xunsearch开发团队给我提供该优秀的作品!

猜你喜欢

转载自blog.csdn.net/Tim_phper/article/details/88682759