我有一个ES索引,其中包含以下对象类型:
{
"_index": "my_index",
"_type": "logs",
"_id": "150",
"_score": 18.605173,
"_source": {
"APP_ID": "my id",
"APP_VALUE": "{\"groupIds\":[798,919],\"Name\":\"groupTestRep\",\"User\":\"TEST USER\"}",
"LAST_MOD_DATE": 1461711863000,
}
},
是否有一种确定的方法可以在APP_VALUE字段中搜索确切的User或groupdId。理想的情况是将字符串存储为嵌套对象,但在我的情况下,这是不可能的。所以我想知道是否有办法查询这个字符串,好像它可能是一个嵌套对象。
答案 0 :(得分:0)
APP_VALUE应该被索引为Object而不是字符串值,即
" APP_VALUE":{ "类型" :"对象", "属性" :{ "组id" :{" type" :" long"}, "名称" :{" type" :" string"}, "用户":{"输入":"字符串"}, ... }
如果您绝对不能这样做,您可以将其编入索引 "索引":" not_analyzed", " position_increment_gap":100
这可以给你你所期待的;虽然如果你想从该对象中写出更多独特的查询,你可能会遇到问题。请注意,这将对此字段进行索引,因此可以搜索,但可以完全按照指定索引值。