ElasticSearcher对不同字段类型索引方式

背景

1: 核心数据类型(strings, numbers, booleans及dates)以不同的方式进行索引,而这点也是现实:在Elasticsearch中他们是被区别对待的

2: 确切值(exact values)(比如string类型)及全文文本(full text)之间的区别,这是搜索引擎和数据库之间搜索的根本差异

 

 

正文

1: analysis

fulltext或者分词字段,查询和索引都会经过同一套analysis模块,这个功能和esearch一样,包含过滤(大小写,空格,特殊字符)和分词

可以指定

GET /_analyze?analyzer=standard&text=Text to analyze

 

2:字段

如一个mapping示例:

GET /gb/_mapping/tweet ## mapping就相当于schema

{ "gb": { "mappings": { "tweet": { "properties": { "date": { "type": "date", "format": "strict_date_optional_time||epoch_millis" }, "name": { "type": "string" }, "tweet": { "type": "string" }, "user_id": { "type": "long" } } } } } }

其他的没什么关注的,主要是string字段,

string字段:当Elasticsearch在你的文档中探测到一个新的字符串字段,它将自动设置它为全文string字段并用standard分析器分析。也就是说string字段默认会设置为分词字段,如果要设置,需要在mapping中设置这个字段对应的类型。

那么如何将string字段设置为不分词呢?对于string字段,两个最重要的映射参数是index和analyer

只需要设置这两个字段值就行

{ "ta

你可能感兴趣的:(云搜索进阶之路)