在es的主页,我们新建索引film2......
然后映射的时候,指定smartcn分词;
post http://192.168.19.128:9200/film2/_mapping/dongzuo/
{
"properties": {
"title": {
"type": "text",
"analyzer": "smartcn"
},
"publishDate": {
"type": "date"
},
"content": {
"type": "text",
"analyzer": "smartcn"
},
"director": {
"type": "keyword"
},
"price": {
"type": "float"
}
}
这样前面film索引,数据是标准分词,中文全部一个汉字一个汉字分词;film2用了smartcn,根据内置中文词汇分词;
我们用java代码来搞分词搜索;
先定义一个静态常量:
private static final String ANALYZER="smartcn";
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
指定了 中文分词,查询的时候 查询的关键字先进行分词 然后再查询,不指定的话,默认标准分词;
这里再讲下多字段查询,比如百度搜索,搜索的不仅仅是标题,还有内容,所以这里就有两个字段;
我们使用 multiMatchQuery 我们看下Java代码:‘’
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|