私はelasticsearchの初心者です。私が持っているjsonbフィールドの中にフィールドのインデックスを追加したいと思います。これはネストされた関係ではありません。elasticsearchレールのjsonbフィールドの属性のインデックスを追加する
フィールドid
(整数)、user_id
(整数)、data
(jsonb)のテーブルペイロードがあります。
サンプルjsonb値は次のようである:
{"name" => "Test User", "values" => {"age" => 24, "gender" => "male"}, "married": false}
私は、「データ」の「値」セクション(jsonb列)の内側に「性別」フィールドにインデックスを追加します。
データベースはポストグルです。
次のように私は、インデックスの設定を追加しました:
mappings do
indexes :id, type: 'integer'
indexes :user_id, type: 'integer'
indexes :data do
indexes :gender
end
end
は、この権利ですか?
私は、クエリの正確な結果、このクエリの
{"query": {
"term": {
"user_id": 1
}
}}
ではなく、事前に
{"query": {
"term": {
"gender": "male"
}
}}
感謝を取得しています!
settings index: { number_of_shards: 1 } do
mappings dynamic: 'false' do
indexes :id, type: 'integer'
indexes :user_id, type: 'integer'
indexes :name, type: 'text'
indexes :data, type: 'nested' do
indexes :gender, type: 'text'
indexes :age, type: 'integer'
end
end
end
JSON文書の詳細については、こちらをhttps://www.elastic.co/guide/en/elasticsearch/reference/current/object.html読む:
この1つはここにあなたを助けるかもしれないように見えます:http://michael.otacoo.com/postgresql-2/postgres-9-4-feature-highlight-indexing-jsonb/ –
@TarynEast ..ありがとう。私は質問を編集しました。私はelasticsearchでインデックスを追加するのを探しています。 –