用了_analyze 接口,发现查询潮流的时候会这样
{
"tokens": [
{
"token": "潮",
"start_offset": 0,
"end_offset": 1,
"type": "<IDEOGRAPHIC>",
"position": 0
},
{
"token": "流",
"start_offset": 1,
"end_offset": 2,
"type": "<IDEOGRAPHIC>",
"position": 1
}
]
}
但是我不希望他对搜索词进行分词
mapping 是这样的
mappings: {
product: {
properties: {
title: { type: 'text', boost: 100, index: 'not_analyzed' }, # analyzer: 'ik_smart', index: 'not_analyzed'
summary: { type: 'text', boost: 10, index: 'not_analyzed' }, # analyzer: 'ik_smart', index: 'not_analyzed' },
content: { type: 'text', boost: 10, index: 'not_analyzed' }, # analyzer: 'ik_smart', index: 'not_analyzed' },
class_name: { type: 'string', index: "not_analyzed" },
tags: { type: 'text', boost: 100, index: 'not_analyzed' }, # analyzer: 'ik_smart', index: 'not_analyzed' },
date: { type: 'date', format: "yyyy-MM-dd'T'HH:mm:ss.SSSZZ"}
}
}
}
1
sss495088732 2020-06-15 13:53:39 +08:00
type:"keyword",新版本好像没有 not_analyzed 这种说法了,仅 text 类型支持分词
|
2
ThanksSirAlex OP @sss495088732 老项目了,用的还是 es5.5.3
|
3
sss495088732 2020-06-15 16:55:35 +08:00
@ThanksSirAlex 那就非常僵硬了 0.0
|
4
wupeaking 2020-06-15 17:00:09 +08:00
可以在建立 mapping 时再单独为这个字段创建一个不分词的属性
|
5
zxc12300123 2020-06-15 17:19:41 +08:00 via iPhone
match_phrase
|
6
ThanksSirAlex OP @zxc12300123 用了 match_phrase 一条结果都搜不到了,有点懵。。。
|
7
optional 2020-06-15 23:29:26 +08:00 via iPhone
创建两个字段
|
8
misaka19000 2020-06-15 23:37:49 +08:00
看 ES 文档
|
9
JRay 2020-06-16 11:36:24 +08:00
在搜索字段的时候,在字段名称后面加上.keyword
|