美文网首页
十分钟,在本地搭建一个搜索引擎

十分钟,在本地搭建一个搜索引擎

作者: 在下GoGo闯 | 来源:发表于2018-08-17 00:01 被阅读603次

假设有一堆词,也有一堆内容。现在想知道:

  • 每个词的相关词有哪些?

  • 每个词的相关内容有哪些?

  • 每个内容的相关内容有哪些?

利用上述词与词、词与内容、内容与内容的关联,来优化页面的推荐信息,使用户和搜索引擎获得更好的浏览体验。

这些相关信息的推荐都可以通过搜索来实现,这些推荐的信息无论是写死的,还是实时查询的,还是分时间缓存的,前提是都得有个搜索引擎。

如何本地搭建一个搜索引擎?

直接套一个开源搜索引擎即可

开源搜索引擎有哪些?

http://www.oschina.net/project/tag/130/search-engine

本渣渣用过以下两个

十分钟,在本地搭建一个搜索引擎

相比之下推荐 Xunsearch。

因为Coreseek多年未更新,且我觉得写文档的人可能语文没学好

Xunsearch一直更新,用的人多,碰到问题解决方案比较好找,另外后端基于C/C++开发,我一直感觉跟C沾边的在性能上都比较好。所以下面十分钟在本地搭建一个搜索引擎的教程,以xunsearch为例。

xunsearch官方主页在:http://www.xunsearch.com/

10分钟本地搭建搜索引擎示例

安装

本渣渣很久之前就安装过了,步骤极其简单,直接照此处官方文档操作就行

image

启动xunsearch服务

本渣渣的xunsearch安装在 /Users/sunjian/ 这个目录下,执行:

/Users/sunjian/xunsearch/bin/xs-ctl.sh start

将 /Users/sunjian/ 替换成各自的xunsearch安装路径,执行后,即可启动xunsearch服务

创建项目配置文件

image

在 /xunsearch/asdk/php/app/ 目录下创建项目配置文件,文件名一般与项目名同名,且以 .ini 结尾

project.name:项目名称

project.default_charset:编码,一般都是utf-8

server.index 和 server.search为服务端口,直接粘贴即可

下面 [xxx] 和 type 是需要创建索引的字段名称和对应的数据类型。

比方说我抓过来一堆微信公众号的数据,放到mysql中,如下:

image

我希望可以通过关键词对这些公众号内容的标题 或者 正文进行搜索,找出与这个词相关内容,那么就需要对存放标题和正文的字段创建索引,而id字段是每条记录的唯一标识,是mysql中的主键,所以也需要添加到索引中。

那么在xunsearch配置文件中,需要写入创建索引用到的3个字段:id title 和 contont

字段名称写在 [ ] 内,分别对应在mysql中的字段名称

type为这个字段对应的数据类型,这个数据类型不是mysql中的数据类型,是在xunsearch对应的数据类型,有如下几种:

image

很明显,标题数据对应的类型为title,正文对应的字段类型为body。

ps:配置文件文档:http://www.xunsearch.com/doc/php/guide/ini.guide

新建索引

image

ps:索引操作说明文档

http://www.xunsearch.com/doc/php/guide/util.indexer

测试搜索

image image

ps:搜索测试文档:http://www.xunsearch.com/doc/php/guide/util.quest

在web目录下创建xunsearch前端搜索页面骨架

image image

ps:生成搜索代码文档:http://www.xunsearch.com/doc/php/guide/util.skel

本地开启PHP环境

MAC本地,打开/etc/apache2/httpd.conf,将取消本行注释

image

重启Apache:

sudo apachectl restart

ps:如果你本地已经开启PHP环境请略过这步,如果是win系统请百度对应的开启php环境的方法

浏览器打开本地localhost下生成的xunsearch前端搜索页面

词的相关内容:

[图片上传中...(image-6bd06a-1534435280549-2)]

内容的相关内容:

image

微信公众号:流量贩子

GoGo闯的公众号

知识星球(日后有福利发之,比如一段能写黄段子的Python代码~~~)

GoGo闯的知识星球

相关文章

  • 十分钟,在本地搭建一个搜索引擎

    假设有一堆词,也有一堆内容。现在想知道: 每个词的相关词有哪些? 每个词的相关内容有哪些? 每个内容的相关内容有哪...

  • MAC OS 下坑爹的Mysql故障

    0x01 事由 准备在本地搭建一个完整的平台,在本地调试可能比较方便些,我可以做些定制化的修改。结果发现,本地搭建...

  • spring 框架初解及搭建

    一、spring 框架简单搭建 有两种方法在本地快速搭建一个 spring 项目(本地环境已经安装好 maven ...

  • 利用Ruby sinatra搭建本地测试平台

    在利用Python Flask搭建本地测试平台中,笔者给出了使用python flask搭建本地Resful服务的...

  • Solr6.5.1环境搭建+相关命令+索引查询

    前言最近在研究搜索引擎,准备搭建一套属于自己的搜索APP,用于搜索的数据我已通过scrapy抓到本地了,现在需要一...

  • 前端快速创建本地服务器

    搭建本地服务器,是为了在同一个局域网下可以通过ip访问到本地网址。在前端项目中搭建本地服务器可以实现局域网内个多个...

  • 配置中心 (二)

    这一节来说说配置中心。在搭建配置中心的时候,有刷到说仓库可以在本地搭建,不过当然不会这么low,而且本地搭建哪来的...

  • 借助Lucene实现的网络搜索引擎

    在JDK1.8的环境下搭建一个网络搜索引擎。搜索引擎的基本功能:文本采集,文本转换,创建索引,用户交互,排序、评价...

  • Jenkins PHP 部署示例

    搭建 Jenkins 在本地搭建 Jenkins. 参考 jenkins 安装 配置 SSH 配置 ssh, 程序...

  • Elasticsearch routing功能

    Elasticsearch是一个搭建在Lucene搜索引擎库基础之上的搜索服务平台。它在单机的Lucene搜索引擎...

网友评论

      本文标题:十分钟,在本地搭建一个搜索引擎

      本文链接:https://www.haomeiwen.com/subject/rhmabftx.html