我们有一个社交应用程序,用户可以在某些特定类别下创建组。用户将拥有用户教育,认证,位置等。 我想基于位置,教育等搜索用户。类似地搜索基于类别的组。我想使用Elasticsearch
这是用户映射
"userData" : { "dynamic" : "true", "properties" : { "allSuggest" : { "type" : "completion", "analyzer" : "simple", "payloads" : true, "preserve_separators" : true, "preserve_position_increments" : true, "max_input_length" : 50 }, "email" : { "type" : "string", "index" : "not_analyzed" }, "firstName" : { "type" : "string" }, "gender" : { "type" : "object", "enabled" : false }, "id" : { "type" : "string" }, "isActive" : { "type" : "string", "index" : "not_analyzed" }, "lastName" : { "type" : "string" }, "location" : { "properties" : { "country" : { "type" : "string", "index" : "not_analyzed" }, "region" : { "type" : "string" } } }, "mId" : { "type" : "object", "enabled" : false }, "profilePic" : { "type" : "object", "enabled" : false }, "profileStatus" : { "type" : "object", "enabled" : false }, "status" : { "type" : "object", "enabled" : false }, "userId" : { "type" : "object", "enabled" : false }, "userSuggest" : { "type" : "completion", "analyzer" : "simple", "payloads" : true, "preserve_separators" : true, "preserve_position_increments" : true, "max_input_length" : 50 } } }
组模型
"groupData" : { "dynamic" : "true", "properties" : { "allSuggest" : { "type" : "completion", "analyzer" : "simple", "payloads" : true, "preserve_separators" : true, "preserve_position_increments" : true, "max_input_length" : 50 }, "cDate" : { "type" : "object", "enabled" : false }, "categoryId" : { "type" : "integer" }, "groupId" : { "type" : "object", "enabled" : false }, "groupName" : { "type" : "string" }, "groupPic" : { "type" : "object", "enabled" : false }, "groupStatus" : { "type" : "object", "enabled" : false }, "groupSuggest" : { "type" : "completion", "analyzer" : "simple", "payloads" : true, "preserve_separators" : true, "preserve_position_increments" : true, "max_input_length" : 50 }, "isActive" : { "type" : "string", "index" : "not_analyzed" }, "mId" : { "type" : "object", "enabled" : false } } }
问题是我怎么说用户是该组的成员。搜索特定组中的成员
我应该将userData本身作为嵌套或父子项添加教育详细信息。
或者在Elasticsearch中处理社交关系很困难?
答案 0 :(得分:0)
问题是我怎么说用户是该群组的成员
为此,您可以在用户映射中使用一组group id,然后使用术语过滤器来过滤组ID。
搜索特定群组中的成员
这可以使用上述方法本身完成。
我应该将userData本身作为嵌套或父子项添加教育详细信息。
教育详细信息应该是用户映射本身的一部分。这可以使用嵌套数组进行。使用父子关系将是一种矫枉过正的行为。