小编Gan*_*han的帖子

在Elasticsearch Rails中为jsonb字段的属性添加索引

我是 elasticsearch 的初学者,我想为我拥有的 jsonb 字段内的字段添加索引。这不是嵌套关系。

我的表有效负载包含字段id(整数)、user_id(整数)、data(jsonb)。

示例 jsonb 值如下:

{"name" => "Test User", "values" => {"age" => 24, "gender" => "male"}, "married": false}
Run Code Online (Sandbox Code Playgroud)

我想在“数据”(jsonb 列)的“值”部分内添加“性别”字段的索引。

数据库是postgres。

我添加了索引配置如下:

  mappings do
    indexes :id,      type: 'integer'
    indexes :user_id, type: 'integer'

    indexes :data do
      indexes :gender
    end
  end
Run Code Online (Sandbox Code Playgroud)

这是正确的吗?

我得到了查询的准确结果,

{"query": {
    "term": {
        "user_id": 1
    }
}}
Run Code Online (Sandbox Code Playgroud)

但不适用于此查询

{"query": {
    "term": {
        "gender": "male"
    }
}}
Run Code Online (Sandbox Code Playgroud)

提前致谢 !!!

postgresql ruby-on-rails elasticsearch elasticsearch-model elasticsearch-rails

5
推荐指数
1
解决办法
1635
查看次数