我有一个具有嵌套字段的文档:
我只想获取包含测试数据的文档。testDataId为空
以下是我的疑问:
{
"bool": {
"must_not": [
{ "exists": { "field": "testData.testDataId", "boost": 1.0 } }
],
"adjust_pure_negative": true,
"boost": 1.0
}
}
但是我有和那些'testData'为空的文档。可以禁用吗?
例如:我有那3个文件
[
{
"name": "test_user_1",
"additionalInfo": { "phoneNumber": "00000000", "address": "test_address" },
"testData": { "testDataId": "some_id", "description": "test_description" }
},
{
"name": "test_user_2",
"additionalInfo": { "phoneNumber": "00000000", "address": "test_address" },
"testData": { "description": "test_description" }
},
{
"name": "test_user_3",
"additionalInfo": { "phoneNumber": "00000000", "address": "test_address" }
}
]
我希望只检索test_user_2
由于您正在处理嵌套字段,因此需要使用嵌套查询。
GET /72491619/_search
{
"query": {
"nested": {
"path": "testData",
"query": {
"bool": {
"must_not": [
{
"exists": {
"field": "testData.testDataId"
}
}
]
}
}
}
}
}
为了设置索引和数据,我使用了下面的api调用:
PUT /72491619/
{
"mappings": {
"properties": {
"name": {
"type": "keyword"
},
"additionalInfo":{
"type": "nested",
"properties": {
"phoneNumber": {
"type": "keyword"
},
"address": {
"type": "keyword"
}
}
},
"testData":{
"type": "nested",
"properties": {
"testDataId": {
"type": "keyword"
},
"description": {
"type": "keyword"
}
}
}
}
}
}
POST /_bulk
{"index":{"_index":"72491619"}}
{"name":"test_user_1","additionalInfo":{"phoneNumber":"00000000","address":"test_address"},"testData":{"testDataId":"some_id","description":"test_description"}}
{"index":{"_index":"72491619"}}
{"name":"test_user_2","additionalInfo":{"phoneNumber":"00000000","address":"test_address"},"testData":{"description":"test_description"}}
{"index":{"_index":"72491619"}}
{"name":"test_user_3","additionalInfo":{"phoneNumber":"00000000","address":"test_address"}}
我们决定将es迁移到vespa es“minimumshould_match”查询如何转换为vespa查询? 例如:es查询: 上述查询意味着三次匹配至少两次 我尝试通过vespa“or”运算符转换此查询,但75%的人无法表达
问题内容: 我的elasticsearch的映射如下所示: 问题是: 我正在使用elasticsearch_dsl Q()形成ES查询。当我的查询包含任何复杂的正则表达式时,它在大多数情况下都可以正常工作。但是,如果它包含正则表达式字符“!”,则它将完全失败。在里面。当搜索词包含“!”时,不会给出任何结果 在里面。 例如: 1.)(完美运作) 2.)(完美运作) 3.)(完美运作) 4.)(完美运
我使用以下软件包Apache zookeeper 3 . 4 . 14 Apache storm 1 . 2 . 3 Apache Maven 3 . 6 . 2 elastic search 7 . 2 . 0(本地托管)Java 1.8.0_252 aws ec2中型实例,带4GB ram 我已经使用这个命令来增加jvm的虚拟内存(之前它显示了jvm没有足够内存的错误) 我已经创建了 mave
现在有三台ES服务器,索引里大概有7000条数据,每条数据是内容放到txt中大概300kb以上,按某个查询条件查询的结果数量是4000多条数据。当size设置成9999的时候,需要查询30秒以上,这是为什么呢,有没有优化方案。
ES搜索中,可以通过GET /索引库名称/_doc/id查询文档,也可以通过 对文档进行查询 想问一下大佬们,这两者的区别是啥?都用在什么地方
es 中有一个字段,整数(非keyword)取值有1,2,3,4;数据量10亿; es使用term 查询,查1,2,4都很快,只有查询条中有3的时候很慢。 什么情况下会使得es只查询特定的值会慢?