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介绍: ...
随机推荐
- Elasticsearch 5.4.3实战--Java API调用:搜索
ES有多种查询方式,我自己的业务是需要对多个字段进行查询,具体实现类代码如下. package com.cs99lzzs.elasticsearch.service.imp; import java. ...
- python 实现神经网络算法
注: Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具.这里写链接内容 本文翻译自“IMPLEMENTING A NEURAL NETWORK FRO ...
- Faster_RCNN 1.准备工作
总结自论文:Faster_RCNN,与Pytorch代码: 代码结构: simple-faster-rcnn-pytorch.py data __init__.py dataset.py util. ...
- Linux查看本机IP:curl cip.cc
curl http://members.3322.org/dyndns/getip curl ip.6655.com/ip.aspx curl ifconfig.me curl icanhazip.c ...
- Valgrind使用【转】
转自:https://www.cnblogs.com/napoleon_liu/articles/2001802.html 调不尽的内存泄漏,用不完的Valgrind Valgrind 安装 1. 到 ...
- js加密转python3
//add by wangp at 2018-01-23 密码加密方法 start function encrypt(pwd){ var key = "MIIBIjANBgkqhkiG9w0 ...
- vc++高级班之窗口篇[4]---让程序只运行一个实例
大家都看过或者使用过类似只运行一个实例的程序,比如:QQ游戏.部分浏览器 等等! 让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建后,有窗口的程序在窗口创建前, 检查系统中是 ...
- LabVIEW--为控件添加说明信息
之前只知道为VI添加说明信息(在VI的属性里面添加,快捷键ctrl+I 打开),今天知道了控件也可以添加说明信息,这样就方便了许多,极大的提高了程序的可读性.
- Centos 安装 Nginx 详细过程
系统 Centos 64位 第一步,首先下载Nginx的tar包及安装依赖的工具tar包. Nginx: http://nginx.org/en/download.html Nginx需要依赖下面3个 ...
- Ubuntu选择软件源
1. 系统桌面右上角,系统菜单中选择Software Up to Date 2. 点击Settings-按钮 3. Ubuntu Software标签页,Download from选择中国的软件服务器 ...