有一个 map 集合,里面 key 的名称不确定,集合元素数量不确定。
我需要查询 map 集合内某个 key 为某个值的数据。如果是把 map 集合转为 json 作为一个字段存到 ES 的应该可以解决,因为这种情况下我的字段名是固定的,我只需要将查询条件分词,然后根据字段名去和对应的 json 去匹配就可以了。
但是如果 map 的 key 是 index 的字段名应该如何搜索呢?
比如查询输入的是 手机品牌(字段名) 小米(值),但是 map 的 key 只有 品牌(字段名)
比如查询输入的是 价格(字段名) 21 (值),但是 map 的 key 只有 手机价格(字段名)
代码如下: 这段代码中 params 变量的 key 会作为字段名,value 会作为字段值
@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
@Document(indexName = "test_index")
public class TopLevelParam implements Serializable {
public static final String TECH_CODE="techCode";
public static final String PARAMS="params";
public static final String PARAMS_PREFIX="params.";
@Id
private String techCode;
@Field(type = FieldType.Nested,dynamic = Dynamic.TRUE)
private Map<String,Object> params =new HashMap<>();
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.