博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES使用总结
阅读量:7006 次
发布时间:2019-06-27

本文共 969 字,大约阅读时间需要 3 分钟。

hot3.png

以下总结基于ES2.3.4版本:

ES字段总结:

match与Term两者却别:

    match:匹配的时候,会将查询的关键字进行分词,然后根据分词后的结果进行查询。

    term:直接使用关键字进行查询,不对关键字进行分词。

字段类型:

    completion 类型字段无法做精确查询,目前个人测试结果只能做自动补全搜索;

在同一个Index里两个不同的Type不能有不同类型的相同字段

    比如在 test index理由   a type 存在Date类型的createTime字段,那b type就不能声明 createTime 为Long类型;

    比如在 test index理由   a type 存在Date类型的但store:false 的createTime字段,那b type就不能声明 createTime 为Date类型 store:true;

 

ES JAVA API总结:

对于String 类型字段:

    QueryBuilders.matchPhraseQuery :严格的需要完全匹配才会显示出来(适用与 analyzed);

    QueryBuilders.matchQuery :ES分词后匹配一个或多个时就会搜索出来;

    QueryBuilders.termQuery:只适用于 not_analyzed 字段搜索;

    QueryBuilders.fuzzyQuery("name", term).fuzziness(Fuzziness.ONE)  :  fuzzy query 分词模糊查询,      通过增加fuzziness 模糊属性,来查询term 如下 能够匹配 hotelName 为 te el tel前或后加一个字母的        term的 文档 fuzziness 的含义是检索的term 前后增加或减少n个单词的匹配查询; (适用于 index:             not_analyzed)

    如果 index:no ,则该字段不支持termQuery及match;

对于逻辑关系:

    must: 文档必须完全匹配条件

    should: should下面会带一个以上的条件,至少满足一个条件,这个文档就符合should
    must_not: 文档必须不匹配条件

转载于:https://my.oschina.net/weiweiblog/blog/1572718

你可能感兴趣的文章
一文掌握常用的机器学习模型
查看>>
jQuery文字雨加搜索框特效
查看>>
【CF 应用开发大赛】Blog4j个人独立博客
查看>>
Go 并发控制context实现原理剖析
查看>>
邮件服务器DNS设置-----MX、SPF、DKIM记录详解
查看>>
12月份全球域名总量净减20.3万个 降幅波动明显
查看>>
Flask的Jinja2模板引擎 - 控制语句与表达式
查看>>
Spark入门实战系列--1.Spark及其生态圈简介
查看>>
MySQL 服务器调优
查看>>
django book学习笔记——表单
查看>>
学习札记——ruby on rails 关于时间操作与数据查询
查看>>
MySQL主从备份
查看>>
基础体系结构元素
查看>>
Android 获取LocationProvider以及获取定位信息
查看>>
【Python初级】008-面向对象
查看>>
从'计算两个日期天数之差'程序介绍RPG语言
查看>>
thinkPhp里添加显示上一条和下一条
查看>>
Debian虚拟机安装VMware tools
查看>>
hyperledger v1.0.5 区块链入门
查看>>
iOS——添加基本的启动画面切换
查看>>