- matchPhraseQuery和matchQuery
matchPhraseQuery和matchQuery的区别:在使用matchQuery时,在执行查询时,搜索的词会被分词器分词,而使用matchPhraseQuery时,不会被分词器分词,而是直接以一个短语的形式查询。- termQuery和matchPhraseQuery
termQuery是完全匹配,不会像matchPhraseQuery那样短语匹配,数据必须和- 字符串被自动映射为日期格式
Elasticsearch会自动把日期的字符串转为日期格式,这个偶尔会遇到问题,由于数据格式不正确,导致转化失败,最终数据添加不进去。
查询官网资料,手动关闭自动转换(其它版本写法有所出入)://7.1中的解决方法: PUT my_index { "mappings": { "date_detection": false } }
https://www.elastic.co/guide/en/elasticsearch/reference/7.1/dynamic-field-mapping.html
- Dynamic-mapping动态的映射(es根据数据自动定义类型),日期字符串自动转date,布尔类型自动转boolean等
es mapping设置之dynamic可以限制字段,
true:遇到陌生字段,就进行dynamic mapping
false:遇到陌生字段,不生成mapping,但是会存入es,也检索不出
strict:遇到陌生字段,直接报错
由于json很多嵌套,es会识别为含有keyword的子字段的text类型,es默认索引里面的字段不超过1000个,使用自用映射可能超出限制
网友评论