ElasticSearch:搜索以字符串形式存储的json字段,就好像它是一个嵌套对象一样



我有一个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。理想的情况是将字符串存储为嵌套对象,但在我的情况下这是不可能的。所以我想知道是否有一种方法可以像查询嵌套对象一样查询这个字符串。

APP_VALUE应作为Object而非字符串值(即)进行索引

"APP_VALUE":{"类型":"对象","属性":{"groupIds":{"type":"long"},"名称":{"类型":"字符串"},"用户":{"类型":"字符串"},。。。}

如果你绝对不能做到这一点,你可以将其索引为"索引":"未分析","position_increment_gap":100

这可能会给你带来你所期望的;不过,如果您想从该对象中编写更多唯一的查询,以后可能会遇到问题。请注意,这将对该字段进行索引,因此它是可搜索的,但会完全按照指定对值进行索引。

最新更新