我在ES 5中具有以下映射的索引
{
"test-log": {
"mappings": {
"record": {
"properties": {
"content": {
"type": "text"
},
"level": {
"type": "keyword"
}
}
}
}
}
}
我为这样的文件建立索引
POST test-log/record
{
"content":"this is about java and mysql",
"level":"info"
}
使用以下DSL我可以获取数据
GET test-log/_search
{
"query": {
"query_string": {
"query": "info error"
}
}
}
然后我将ES升级到7.4
{
"test-log" : {
"mappings" : {
"properties" : {
"content" : {
"type" : "text"
},
"level" : {
"type" : "keyword"
}
}
}
}
}
但是我得到的结果是空的。
那么query_string在ES 7中如何工作?
ES 5和7之间有什么区别?
答案 0 :(得分:1)
根据the documentation,您可能需要"query": "info OR error"
。
答案 1 :(得分:0)
ES 6发生了重大变化。
在ES 5中,$ ./bin/three2d <dat/3x3.txt
445 971 809 962 208
648 547 459 981 634
656 529 534 710 10
796 548 696 998 647
215 857 384 698 54
Enter the kernel:
1 2 3
4 5 6
7 8 9
0 0 0 0 0
0 27643 33359 22960 0
0 26218 33460 27418 0
0 25653 31352 20828 0
0 0 0 0 0
默认为default_field
,而_all
是一个特殊的通用字段,它将所有其他字段的值连接到一个大字符串中。
在ES 7中,_all
的默认值为default_field
。*
值提取所有符合条件查询条件的字段,并过滤元数据字段。如果未指定前缀,则将所有提取的字段合并以构建查询。这些字段被合并,但不已串联