在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

/**

 * 条件分词查询

 * @throws Exception

 */

@Test

public void search()throws Exception{

    SearchRequestBuilder srb=client.prepareSearch("film2").setTypes("dongzuo");

    SearchResponse sr=srb.setQuery(QueryBuilders.matchQuery("title""星球狼").analyzer(ANALYZER))

        .setFetchSource(new String[]{"title","price"}, null)

        .execute()

        .actionGet(); 

    SearchHits hits=sr.getHits();

    for(SearchHit hit:hits){

        System.out.println(hit.getSourceAsString());

    }

}

指定了 中文分词,查询的时候 查询的关键字先进行分词 然后再查询,不指定的话,默认标准分词;

这里再讲下多字段查询,比如百度搜索,搜索的不仅仅是标题,还有内容,所以这里就有两个字段;

我们使用 multiMatchQuery 我们看下Java代码:‘’

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

/**

 * 多字段条件分词查询

 * @throws Exception

 */

@Test

public void search2()throws Exception{

    SearchRequestBuilder srb=client.prepareSearch("film2").setTypes("dongzuo");

    SearchResponse sr=srb.setQuery(QueryBuilders.multiMatchQuery("非洲星球""title","content").analyzer(ANALYZER))

        .setFetchSource(new String[]{"title","price"}, null)

        .execute()

        .actionGet(); 

    SearchHits hits=sr.getHits();

    for(SearchHit hit:hits){

        System.out.println(hit.getSourceAsString());

    }

}

elasticsearch基于smartcn中文分词查询相关推荐

  1. 如何在Elasticsearch中安装中文分词器(IK+pinyin)

    如何在Elasticsearch中安装中文分词器(IK+pinyin) 如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当 ...

  2. 在Hadoop上运行基于RMM中文分词算法的MapReduce程序

    原文:http://xiaoxia.org/2011/12/18/map-reduce-program-of-rmm-word-count-on-hadoop/ 在Hadoop上运行基于RMM中文分词 ...

  3. 与自定义词典 分词_【201110】ElasticSearch实现中文分词查询

    介绍 介绍 今天福哥给大家介绍一下ElasticSearch的分词查询的使用技巧,通过分词查询可以避免不是很匹配的文档出现在结果当中. 举例:如果查询"北京"一般情况下都是想查询关 ...

  4. docker自定义elasticsearch镜像——集成中文分词器smartcn

    前言... 翻遍百度.谷歌.bing也没找到docker下给elasticsearch安装smartcn的资料,全是IK和拼音的,只好拿出我这只会几个简单命令的本事参考.观摩.尝试...参考.观摩.尝 ...

  5. ElasticSearch 中的中文分词器以及索引基本操作详解

    文章目录 1.ElasticSearch 分词器介绍 1.1 内置分词器 1.2 中文分词器 1.2.1 安装 1.2.2 测试 1.2.3 自定义扩展词库 1.2.3.1 本地自定义 1.2.3.2 ...

  6. ElasticSearch 中的中文分词器该怎么玩?_03

    内置分词器 ElasticSearch 核心功能就是数据检索,首先通过索引将文档写入 es.查询分析则主要分为两个步骤: 词条化:分词器将输入的文本转为一个一个的词条流. 过滤:比如停用词过滤器会从词 ...

  7. Elasticsearch 7.X 中文分词器 ik 使用,及词库的动态扩展

    一.ik中文分词器 上篇文章我们学习了ES集群分片和水平扩容,前面再使用的时候应该就会发现,在做match 匹配时,默认会进行分词,但当查询内容是中文时,分词效果是一个字被认定了一个词,这显然不符合我 ...

  8. ElasticSearch中的中文分词详解

    1.什么是分词: 分词就是指将一个文本转化成一系列单词的过程,也叫文本分析,在Elasticsearch中称之为Analysis. 举例:我是好学生 --> 我/是/好学生 2.分词API 2. ...

  9. Elasticsearch:hanlp 中文分词器

    HanLP 中文分词器是一个开源的分词器,是专为Elasticsearch而设计的.它是基于HanLP,并提供了HanLP中大部分的分词方式.它的源码位于: https://github.com/Ke ...

最新文章

  1. C++ Primer 读书笔记 (1)
  2. python多进程的使用(导包、创建子进程、启动子进程)
  3. codeblocks c++ 编译出错
  4. Java中Collection与Collections的区别
  5. ns-allinone错误锦囊
  6. 记录一个需求:折线图,要求指定年份每一天的记录
  7. Nginx 完整安装篇
  8. react 日历组件_anujs1.5.1支持React.Suspense与lazy
  9. 从0开始接触html--第一天学习内容总结
  10. 前端基础:vue.js跟node.js分别是什么
  11. win下php+mysql+apache配置
  12. 搞清楚模数、数模转换中的AGND和DGND
  13. python网络爬虫框架内容_Python网络爬虫-Scrapy框架
  14. 数据库课程设计:医院信息管理系统(pycharm+MySQL)
  15. linux xps文件,XPS 文件扩展名: 它是什么以及如何打开它?
  16. 《第一堂棒球课》:王牌左外野·棒球7号位
  17. 电脑连接android手机测试,关于如何将手机画面投屏到PC的测试(Android)
  18. 2021年房地产金融行业发展研究报告
  19. unity简单计时器_简单且悦目的Pomodoro计时器
  20. 全文翻译 | 华为、北大、悉尼大学:最新视觉Transformer综述(2017-2020年)

热门文章

  1. jsbridge android 参数,Android JsBridge 混合开发
  2. 3D相机获取点云信息的几种方法
  3. Python基础(入门了解)
  4. 安装MySql8.0详细教程
  5. 智能医疗机器人软件:实现远程诊断和治疗
  6. 家用医疗保健智能机器人设计
  7. ISM Web组态软件采集西门子PLC
  8. python 动物分类_动物分哪六大类
  9. 巧施妙计,改造“窝里横”男人
  10. [Usaco2016 Jan]Angry Cows