ElasticSearch利用IK实现全文搜索
要做到中文全文检索还需要按照中文分词库 ,这里就使用 IK来设置

安装中文分词库
相关命令: whereis elasticsearch 找到目录
进入 到/usr/elasticsearch/bin
执行 ./elasticsearch-plugin插件命令 安装插件 ./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.6.1/elasticsearch-analysis-ik-6.6.1.zip service elasticsearch restart 重启服务 安装好之后可以看到 plugin 下有 analysis-ik 接下来按照官方的步骤往下面走 、创建一个索引 curl -XPUT http://localhost:9200/myfulltext 、创建 curl -XPOST http://localhost:9200/liyouming/liyoumingtext/_mapping -H 'Content-Type:application/json' -d'
{
"properties": {
"mytext": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
} }'
这里要注意 content 不能冲突 ,分析器字段要定义
Mapper for [content] conflicts with existing mapping in other types:\n[mapper [content] has different [analyzer]]
Mapper for[content]与其他类型的现有映射冲突:[mapper[content]有不同的[分析器]
这里我们还是通过WebAPI来测试
首先创建我们的索引

OK后创建 全文检索相关设置 设置字段、分析器配置 ik_smart 、ik_max_word
分别添加如下数据

{
"url":"liyouming/liyoumingtext",
"param":{"mytext":"深夜还在写代码的人只有黎又铭"}
}
{
"url":"liyouming/liyoumingtext",
"param":{"mytext":"中午黎又铭在操场上打篮球"}
}
{
"url":"liyouming/liyoumingtext",
"param":{"mytext":"黎又铭早上吃了一碗面"}
}
查询下所有数据可以看到
{
"took": ,
"timed_out": false,
"_shards": {
"total": ,
"successful": ,
"skipped": ,
"failed":
},
"hits": {
"total": ,
"max_score": 3.0561461,
"hits": [
{
"_index": "liyouming",
"_type": "liyoumingtext",
"_id": "c7eQAWoB0Mh7sqcTGY-K",
"_score": 3.0561461,
"_source": {
"mytext": "中午黎又铭在操场上打篮球"
}
},
{
"_index": "liyouming",
"_type": "liyoumingtext",
"_id": "dLeQAWoB0Mh7sqcTdo9b",
"_score": 2.1251993,
"_source": {
"mytext": "深夜还在写代码的人只有黎又铭"
}
},
{
"_index": "liyouming",
"_type": "liyoumingtext",
"_id": "crePAWoB0Mh7sqcTzY-2",
"_score": 0.8630463,
"_source": {
"mytext": "黎又铭早上吃了一碗面"
}
}
]
}
}

检索下篮球并高亮文本内容可以看到下面的结果 <tag1>篮球</tag1> 已经被高亮标签处理
{
"took": ,
"timed_out": false,
"_shards": {
"total": ,
"successful": ,
"skipped": ,
"failed":
},
"hits": {
"total": ,
"max_score": 1.0187154,
"hits": [
{
"_index": "liyouming",
"_type": "liyoumingtext",
"_id": "c7eQAWoB0Mh7sqcTGY-K",
"_score": 1.0187154,
"_source": {
"mytext": "中午黎又铭在操场上打篮球"
},
"highlight": {
"mytext": [
"中午黎又铭在操场上打<tag1>篮球</tag1>"
]
}
}
]
}
}
ElasticSearch利用IK实现全文搜索的更多相关文章
- elasticsearch配合mysql实现全文搜索
之前用了sphinx,发现很多东西很久都没更新过了,之前只是知道有elasticsearch这个东西,还以为是java才能用,所以一直没有去了解过,也许sphinx慢慢会被淘汰了吧. 前置条件:需要安 ...
- 在 Laravel 项目中使用 Elasticsearch 做引擎,scout 全文搜索(小白出品, 绝对白话)
项目中需要搜索, 所以从零开始学习大家都在用的搜索神器 elasiticsearch. 刚开始 google 的时候, 搜到好多经验贴和视频(中文的, 英文的), 但是由于是第一次接触, 一点概念都没 ...
- ElasticSearch 2 (14) - 深入搜索系列之全文搜索
ElasticSearch 2 (14) - 深入搜索系列之全文搜索 摘要 在看过结构化搜索之后,我们看看怎样在全文字段中查找相关度最高的文档. 全文搜索两个最重要的方面是: 相关(relevance ...
- 可以执行全文搜索的原因 Elasticsearch full-text search Kibana RESTful API with JSON over HTTP elasticsearch_action es 模糊查询
https://www.elastic.co/guide/en/elasticsearch/guide/current/getting-started.html Elasticsearch is a ...
- 全文搜索之 Elasticsearch
概述 Elasticsearch (ES)是一个基于 Lucene 的开源搜索引擎,它不但稳定.可靠.快速,而且也具有良好的水平扩展能力,是专门为分布式环境设计的. 特性 安装方便:没有其他依赖,下载 ...
- Elasticsearch全文搜索——adout
现在尝试下稍微高级点儿的全文搜索——一项传统数据库确实很难搞定的任务. 搜索下所有喜欢攀岩(rock climbing)的雇员: curl -XGET 'localhost:9200/megacorp ...
- 使用ElasticSearch服务从MySQL同步数据实现搜索即时提示与全文搜索功能
最近用了几天时间为公司项目集成了全文搜索引擎,项目初步目标是用于搜索框的即时提示.数据需要从MySQL中同步过来,因为数据不小,因此需要考虑初次同步后进行持续的增量同步.这里用到的开源服务就是Elas ...
- ASP.NET Web API + Elasticsearch 6.x 快速做个全文搜索
最近想做个全文搜索,设想用 ASP.NET Web API + Elasticsearch 6.x 来实现. 网上搜了下 Elasticsearch 的资料,大部分是讲 linux 平台下如何用 ja ...
- elasticsearch中文分词+全文搜索demo
本文假设你已经搭建好elasticsearch服务器,并在上面装了kibana和IK中文分词组件 elasticsearch+kibana+ik的安装,之前的文章有介绍,可参考. mapping介绍: ...
随机推荐
- web层直接调用 dubbo的服务,合适吗?
目前很多互联网app项目,都是采用这样的一个基本项目结构:即由后端提供Restful的api接口,然后供前端例如IOS.Android或者H5端去调用,如图: 在这种结构下,后台的代码分层常规一般会有 ...
- linux配置supervisor
linux配置supervisor 安装 pip install supervisor 生成配置文件 使用 echo_supervisord_conf > /etc/supervisord.co ...
- VS2008 debug可以编译过,Release No such file or directory
1>正在生成代码1>e:\Source\VC\Զ\json\jsoncpp-src-0.6.0-rc2\src\lib_json\json_value.cpp : fatal error ...
- Mysql数据库远程链接、权限修改、导入导出等基本操作
一.连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1:连接到本机上的MYSQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -ur ...
- 关于iwinfo的调试
在调试 主动扫描时,调用命令 “iwinfo wlan0 scan”时, 在iwinfo中添加的调试语句没有打印和记录到log中去. 后查看iwinfo的makefile发现,在生成iwinfo程序 ...
- ansible笔记(10):初识ansible playbook
ansible笔记():初识ansible playbook 假设,我们想要在test70主机上安装nginx并启动,我们可以在ansible主机中执行如下3条命令 ansible test70 -m ...
- Laravel 5.2数据库--迁移migration
Laravel中的migrations文件存放的是数据库表文件等结构,可以说是一个跟git差不多的,可以说像是数据库的版本控制器,所以可以叫做迁移.因为它可以很快速的很容易地构建应用的数据库表结构. ...
- 正版phpstorm,webstorm,goland(Jetbrains系列都可以)免费激活步骤(图文详解)(亲测有效)
1 前言 Jetbrains系列都可以,包括webstrom,phpstorm,goland等. 附加其它方案如下: webstrom(注册机) goland(破解补丁) 2 步骤 1. 可以先试用, ...
- pipeline
执行顺序:pipeline 写 pipeline类class Scrapyproject1Pipeline(object): def process_item(self, item, spider): ...
- windows被入侵检测
1.net user 查看当前有哪些用户 2.net localgroup administrators 查询administrators最高权限组有哪些用户 3.net user administr ...