ES的映射和分析

精确值和全文
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)



Tagged , , . Bookmark the permalink.

Comments are closed.