这个结果是正确的。搜索条件中的参数在分词字典中是一个整体。目标数据中存在的都会查询到。
跟es集群应该没太大关系,我们本地的单节点也可以,你可以先用kibana查询一下,观察数据的索引和索引type是否和你的model中@Document注解里面的参数是否对应上。我也碰到过一次这种情况,注解里面的type写的_doc,logstash同步过来的type是logs,查询都是空数组,后来把_doc改成logs,就可以查询到了
是的,按正常来说,应该是都是使用mysql,但是可能由于查询的频率比较高或者查询的数据量比较大,mysql性能是有限的,所以将查询单独出来使用ES来实现。就是为了降低对数据库性能的消耗,同时提高查询的效率。
当然ES也是有使用场景的,对查询数据准确性要求比较高的不建议使用ES的。
你的logstash版本有点高吧,视频里面用的是elasticsearch6.3.2版本的,你要找对应版本的logstach
首先你看一下你的CorsFilter的类是不是导的
org.springframework.web.filter.CorsFilter
这个下面的
其次再看一下你的
public class CorsConfig
类上面有没有
@Configuration
注解 因为没有这个注解 这个类就不会被spring容器扫描到 继而你的
CorsFilter
在初始化的时候就会找不到
但愿能有所帮助^_^
感觉应该是往ES里插入数据时没有指定分词器分词, 可以看下ES里面存储的数据是否是分词后的