对字段进行最细力度划分
GET _analyze
{
"analyzer":"ik_max_word",
"text":"java开发程序员"
}
ik_max_word和 ik_smart介绍
学习过Solr或Elasticsearch的同学都知道IK分词器,它是一个针对中文的分词器。
IK分词器地址:https://github.com/medcl/elasticsearch-analysis-ik
IK分词器有两种分词模式:ik_max_word和ik_smart模式。
1、ik_max_word
会将文本做最细粒度的拆分,比如会将“*人民大会堂”拆分为“*、中华人民、中华、华人、人民*、人民、*、大会堂、大会、会堂等词语。
2、ik_smart
会做最粗粒度的拆分,比如会将“*人民大会堂”拆分为*、人民大会堂。
测试两种分词模式的效果:
发送:post localhost:9200/_analyze
测试ik_max_word
{“text”:“*人民大会堂”,“analyzer”:“ik_max_word” }
测试ik_smart
{“text”:“*人民大会堂”,“analyzer”:“ik_smart” }
————————————————
Relational DB Elasticsearch
数据库(database) 索引(indices)
表(tables) types 行(rows)
documents 字段 (columns) fields
//删除索引 删库
DELETE /jd_goods
//获取索引信息
GET /jd_goods
//插入一行数据
PUT /jd_goods/content/1
{
"title": "zx",
"img": "sdfasw/aerwe",
"price": "一顿操作猛如虎,一看工资2500",
"shopname": "java商店"
}
//创建索引
PUT /jd_goods
{
"mappings": {
"properties": {
"title":{
"analyzer": "ik_max_word", //重点,一定要写这个 ,搜索时才能被ik分词器分词
"type": "text"
},
"img":{
"type": "keyword"
},
"price":{
"type": "keyword"
},
"shopname":{
"type": "keyword"
}
}
}
}
//搜索数据
GET /jd_goods/_doc/_search
{
"query":{
"match":{
"title":"核心技术"
}
}
}
插入一条id为1的数据
PUT /jd_goods/_doc/1
{
"title":"java编程语言设计",
"img":"sdfsdf",
"price":"asdfasd",
"shopname":"java书店"
}