精确值和全文 1.ES的数据可以分为精确值和全文 2.精确值比如date类型或者long类型,全文指string类型(匹配)
分析过程: 1.文本分成适合倒排索引的独立的词条 2.将词条标准格式化为可搜索 2.1 字符过滤:去掉html或者&转换为and 2.2 分词器:其次字符串被分词器分成单个词条 2.3 过滤器:词条按照顺序通过token过滤器(小写化、删除无用词、增加同义词) 分析器使用场景: 当你查询一个 全文 域时, 会对查询字符串应用相同的分析器,以产生正确的搜索词条列表。 当你查询一个 精确值 域时,不会分析查询字符串, 而是搜索你指定的精确值
自定义域映射: 1.全文字符串域和精确值字符串域区别 2.使用特定语言分析器 3.优化域适应部分匹配 4.自定义数据格式 备注:可以增加域映射,但是不能修改域映射
自定义域映射-index属性: 1.string类型会被认为包含全文,映射两个重要属性是index和analyzer index只能是analyzed(默认,分析字符串然后索引)、not_analyzed(不分析只索引,精确匹配)、no(不索引) 2.其他类型(long,date,double,float等)的index参数只有not_analyzed和no
自定义域映射-analyzer属性 1.analyzer可以指定在搜索或者索引时使用的分析器,默认使用standard 分析器列表:https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html 说明:我们也可以使用自定义的一些分析器
更多域类型 1.多值域:数组 备注:多值域搜索时是无序和无关联性的 2.空域:如果值是null或者[],或者[null],那么该域就是空域。空域不被索引。 3.多层级对象:内部对象嵌入一个实体或者其他对象(类似php当中多维数组) 内部对对象索引时可以使用名称引用或者全路径(user.info.age)或者type名(test.user.info.age)