1.下载安装java, elasticsearch和kibana

apt-get install default-jre default-jdk
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.2.deb
dpkg -i elasticsearch-5.4..deb
wget https://artifacts.elastic.co/downloads/kibana/kibana-5.4.2-amd64.deb
dpkg -i kibana-5.4.-amd64.deb

2.安装中文分词插件,包括elasticsearch原生的中文分词icu和smartcn,以及第三方中文分词ik、拼音分词pinyin、繁简转换stconvert。

/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-icu
/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-smartcn
wget https://github.com/medcl/elasticsearch-analysisi-stconvert/releases/download/v5.4.2/elasticsearch-analysisi-stconvert-5.4.2.zip
/usr/share/elasticsearch/bin/elasticsearch-plugin install file:///{path}/elasticsearch-analysis-stconvert-5.4.2.zip
wget https://github.com/medcl/elasticsearch-analysisi-ik/releases/download/v5.4.2/elasticsearch-analysis-ik-5.4.2.zip
unzip elasticsearch-analysis-ik-5.4..zip -d /usr/share/elasticsearch/plugins/analysis-ik
wget https://github.com/medcl/elasticsearch-analysisi-pinyin/releases/download/v5.4.2/elasticsearch-analysis-pinyin-5.4.2.zip
unzip elasticsearch-analysis-pinyin-5.4..zip -d /usr/share/elasticsearch/plugins/analysis-pinyin

3.启动服务器

service elasticsearch start
service kibana start

4.在kibana的Dev Tools中测试,地址为http://localhost:5601

大体上可以将Elasticsearch理解为一个RDBMS(关系型数据库,比如MySQL),那么index 就相当于数据库实例,type可以理解为表。
Mapping定义了type中的诸多字段的数据类型以及这些字段如何被Elasticsearch处理,比如一个字段是否可以查询以及如何分词等。
analyzer=char_filter+tokenizer+token_filter按顺序执行

icu提供tokenizer: icu_tokenizer
smartcn提供analyzer: smartcn and tokenizer: smartcn_tokenizer
ik提供analyzer: ik_smart , ik_max_word and tokenizer: ik_smart , ik_max_word
pinyin提供analyzer: pinyin , tokenizer: pinyin and token-filter: pinyin
stconvert提供analyzer: stconvert, tokenizer: stconvert, token-filter: stconvert, and char-filter: stconvert

PUT /stconvert/
{
"settings" : {
"analysis" : {
"analyzer" : {
"tsconvert" : {
"tokenizer" : "tsconvert"
}
"tsconvert_icu_pinyin" : {
"char_filter" : ["tsconvert"],
"tokenizer" : "icu_tokenizer",
            "filter" : ["pinyin"]
}
},
"tokenizer" : {
"tsconvert" : {
"type" : "stconvert",
"delimiter" : "#",
"keep_both" : false,
"convert_type" : "t2s"
}
},
"char_filter" : {
"tsconvert" : {
"type" : "stconvert",
"delimiter" : "#",
"keep_both" : false,
"convert_type" : "t2s"
}
}
}
},
"mappings":{
"test":{
"properties":{
"title": {
"type":"text",
"analyzer":"tsconvert_icu_pinyin"
}
}
}
}
}
}
GET /stconvert/_analyze?pretty
{
"analyzer": "tsconvert_icu_pinyin",
"text": ["狼藉藉口,北京国際電視檯"]
}
PUT /stconvert/test/
{
"title":"狼藉藉口,北京国际电视台"
}
PUT /stconvert/test/
{
"title":"狼藉借口,中央國際電視檯"
}
GET /stconvert/test/_search
{
"query":{
"match":{
"title":"北京ds"
}
}
}

5.安装composer, elasticsearch-php和php的curl扩展

cd /var/www/html
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php composer.phar require "elasticsearch/elasticsearch": "~5.0"
apt-get install php-curl

在/etc/php/7.0/fpm/php.ini中去掉 ;extension=php_curl.dll 前的分号,重启服务

6.测试php搜索elasticsearch

<?php
require 'vendor/autoload.php';
use Elasticsearch\ClientBuilder;
$hosts=['localhost'];
$client = ClientBuilder::create() // Instantiate a new ClientBuilder
->setHosts($hosts) // Set the hosts
->build(); // Build the client object
$searchParams = [
'index' => 'stconvert',
'type' => 'test',
'body' => [
'query' => [
'match' => [
'title' => '北京ds'
]
]
]
];
try {
$results = $client->search($searchParams);
} catch (Elasticsearch\Common\Exceptions\TransportException $e) {
$previous = $e->getPrevious();
if ($previous instanceof Elasticsearch\Common\Exceptions\MaxRetriesException) {
echo "Max retries!";
}
}
print_r($results);
?>

elasticsearch的帮助文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
elasticsearch-php的帮助文档:https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/index.html

Ubuntu16.04下安装elasticsearch+kibana实现php客户端的中文分词的更多相关文章

  1. Ubuntu16.04下安装xunsearch+opencc实现php客户端的中文分词

    1.准备服务器环境 apt-get install apache2 php mysql-server apt-get install mysql-client phpmyadmin apt-get i ...

  2. Ubuntu16.04下安装数据库oracle客户端

    在Ubuntu16.04下安装oracle数据库客户端,使Django项目连接到远程Oracle数据库. 1.下载oracle客户端安装包: 进入官网http://www.oracle.com/tec ...

  3. Ubuntu16.04下安装redis

    Ubuntu16.04下安装redis 保证网络畅通,选定好下载工作路径,执行以下命令下载redis-3.2.6: sudo wget http://download.redis.io/release ...

  4. docker学习笔记(一)—— ubuntu16.04下安装docker

    docker学习笔记(一)—— ubuntu16.04下安装docker 原创 2018年03月01日 14:53:00 标签: docker / ubuntu 1682 本文开发环境为Ubuntu ...

  5. ubuntu16.04下安装artoolkit5

    目前对AR技术的常见理解就是CV(Computer Vision)+CG(Computer Graphic).CV的方法很多,简单些比如FREAK+ICP(ARToolKit中的NFT),复杂些就是S ...

  6. Ubuntu16.04下安装多版本cuda和cudnn

    Ubuntu16.04下安装多版本cuda和cudnn 原文 https://blog.csdn.net/tunhuzhuang1836/article/details/79545625 前言 因为之 ...

  7. Ubuntu18.04下安装Sublime Text3并解决不能输入中文

    Ubuntu18.04下安装Sublime Text3并解决不能输入中文! 废话不多说,直接按顺序执行下面命令开始安装! wget -qO - https://download.sublimetext ...

  8. Ubuntu16.04下安装Hadoop

    一.记录理由 刚开始只是想要学习怎么使用Hive的.想着安装应该很简单,没想到花了整整一天的时间来安装,为了避免下次犯同样的错误,特此记录. 二.安装Hadoop 网上教你怎么安装Hadoop的文章有 ...

  9. Ubuntu16.04下安装texlive

    Ubuntu 16.04下安装texlive的步骤如下: 1.下载texlive 打开终端输入:sudo apt-get install texlive-full  #下载这一过程会持续10-20分钟 ...

随机推荐

  1. DAY5:字典

    无序性: # -*- coding:utf-8 -*- # Author: TanJincheng room = { "s2": "han meimei", & ...

  2. 2018-2019-1 20165318 20165326 实验五 通讯协议设计.md

    目录 实验内容 问题及解决 参考资料 实验内容 任务一 在Ubuntu中完成作业 openSSL OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/L ...

  3. python并发_进程_multiprocessing

    多进程基础, 主要是用了 multiprocessing模块 : 在一个python进程中开启子进程,start方法和并发效果. import time from multiprocessing im ...

  4. protel dxp 2004安装与破解

    安装准备 压缩文件包内容: dxp2004汉化补丁 dxp2004元件库 Network License Setup网络版注册机 Protel DXP2004原程序 Protel2004_sp2_单机 ...

  5. failed to start process with commandline '%LAUNCHER_PATH% %LAUNCHER_ARGS%', ErrorCode = '0x80070002

    在dotnet core进行开发的时候,需要开发目录直接iis进行部署,然而启动的时候,报异常,我们查看windows下的应用日志发现有个这样的错误信息 Application 'MACHINE/WE ...

  6. silverlight 基本信息学习随笔

    Silverlight还处于测试版本阶段 微软 silverlight 是一个跨浏览器.跨平台的插件.为网络带来下一代基于.NETFramework的媒体体验和丰富的交互式应用程序 他是一种新的web ...

  7. flume中sink到hdfs,文件系统频繁产生文件,文件滚动配置不起作用?

    在测试hdfs的sink,发现sink端的文件滚动配置项起不到任何作用,配置如下: a1.sinks.k1.type=hdfs a1.sinks.k1.channel=c1 a1.sinks.k1.h ...

  8. call,apply,bind 方法的学习

    这是三个常用的操作函数的方法,在js中函数就是一等公民,所以说掌握这三个方法还是有必要的 call 和 apply,都会绑定函数的上下文(context)并立即执行调用该方法函数,两者区别在于,接受的 ...

  9. ZoomCharts

    net chart 配置links没有id的话,画图的links会丢失

  10. 20155208徐子涵 Exp 6 信息搜集与漏洞扫描

    20155208徐子涵 Exp 6 信息搜集与漏洞扫描 实验目的 掌握信息搜集的最基础技能与常用工具的使用方法 实验内容 (1)各种搜索技巧的应用 (2)DNS IP注册信息的查询 (3)基本的扫描技 ...