提示信息
作者回复: 可用来做term查询的精确匹配或者是用来做terms aggregation
作者回复: mapping信息是保存在cluster state里面的。
文件应该放在 nodes/{N}/_state/global-{NNN} 下面
https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-state.html
作者回复: https://github.com/onebirdrocks/geektime-ELK
作者回复: 这个我还真没有碰到过
作者回复: keword是一种字段类型
es的每个字段可以做多字段,例如,你有一个content的字段,类型是text。你可以为他指定一个子字段叫 keyword(也可以取名字叫kw)类型设置成keword,
在做term查询时,就查询content.keyword(或者叫content.kw。
es默认为所有文本都设置成text,并且设置keywoed的子字段
作者回复: 可以考虑logstash
作者回复: 不知道你说的两个数来回切换是什么意思?
作者回复: GET indexname/mappings
作者回复: 如果有全文搜索的需求。或者有统计分析的需求,都可以用es作为存储。数据可以在数据库里保存一份,定期同步到es中。然后对一些全文搜索的,对应es实现。
数据库和es同步可以考虑使用logstash的jdbc connector。只需要配置就可以实现增量同步。对于你说的物理删除的记录如何同步es,在logstash中不支持这个功能。但是你可以通过为数据增加isDeleted字段的方式。标记成删除状态。同步到es后 再用程序分别删除。
作者回复: 你是问keyword吗?默认会为字符串创建text,同时加一个名字为keyword的子字段。类型为keyword。
keyword类型可以用来做term查询(精确匹配或者wild card查询,还支持terms聚合。
text类型的字段,实现全文搜索。你的理解是正确的。