拓冰建站拓冰建站
首页 / 资讯中心 / 正文

elasticsearch之我不会的

elasticsearch之我不会的如何安装在此不谈开门见山1.概念理解Relational DBelasticsearch说明表tableindex索引(index)就是文档的集合类似数据库的表(table)行rows文档documents文档Document就是一条条的数据类似数据库中的行Row文档都是JSON格式字段columnsfields字段Field就是JSON文档中的字段类似数据库中的列ColumnSchemaMappingMapping映射是索引中文档的约束例如字段类型约束。类似数据库的表结构SchemaSQLDSLDSL是elasticsearch提供的JSON风格的请求语句用来操作elasticsearch实现CRUD正向索引(mysql)根据id索引的方式。但根据词条查询时必须先逐条获取每个文档然后判断文档中是否包含所需要的词条是根据文档找词条的过程。优点可以给多个字段创建索引根据索引字段搜索、排序速度非常快缺点根据非索引字段或者索引字段中的部分词条查找时只能全表扫描。倒排索引是先找到用户要搜索的词条根据词条得到保护词条的文档的id然后根据id获取文档。是根据词条找文档的过程。优点根据词条搜索、模糊搜索时速度非常快缺点只能给词条创建索引而不是字段无法根据字段做排序2.场景2.1 场景对安全性要求较高的写操作使用mysql实现对查询性能要求较高的搜索需求使用elasticsearch实现两者再基于某种方式实现数据的同步保证一致性2.2 同步2.3.1 同步调用2.3.2 异步通知2.3.3 监听binlog3.索引库操作3.1 mapping映射属性mapping是对索引库中文档的约束常见的mapping属性包括type字段数据类型常见的简单类型有字符串text可分词的文本、keyword精确值例如品牌、国家、ip地址数值long、integer、short、byte、double、float、布尔boolean日期date对象objectindex是否创建索引默认为trueanalyzer使用哪种分词器properties该字段的子字段例如{age:21,weight:52.1,isMarried:false,info:黑马程序员Java讲师,email:zyitcast.cn,score:[99.1,99.5,98.9],name:{firstName:云,lastName:赵}}对应的每个字段映射mapping判断类型为参不参与搜索需不需要分词选择分词器age类型为 integer参与搜索因此需要index为true无需分词器weight类型为float参与搜索因此需要index为true无需分词器isMarried类型为boolean参与搜索因此需要index为true无需分词器info类型为字符串需要分词因此是text参与搜索因此需要index为true分词器可以用ik_smartemail类型为字符串但是不需要分词因此是keyword不参与搜索因此需要index为false无需分词器score虽然是数组但是我们只看元素的类型类型为float参与搜索因此需要index为true无需分词器name类型为object需要定义多个子属性name.firstName类型为字符串但是不需要分词因此是keyword参与搜索因此需要index为true无需分词器name.lastName类型为字符串但是不需要分词因此是keyword参与搜索因此需要index为true无需分词器
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门