次のようなドキュメントを保存します。
{
"id": "dQesbpxeQniUWXpsnjPQ",
"title": "Golf in Hamburg, Altona",
"user": "CtGjEaDxSrhPbf7W7NcH",
"location": {
"id": "Q6sZhRHdiS3mP2innbJ9",
"name": "Hamburg, Altona",
"lat": 53.55,
"lon": 9.93333,
"slug": "hamburg-altona"
},
"_type": "announcement"
}
私たちはする必要がありannouncement.location.slug
ますnot_analyzed
(結局のところ、それはナメクジです)
ただし、マッピングは行われません。次の設定があります。
Tire.index(@@index_name) do
delete
create(mappings: {
announcement: {
properties: {
"id" => { type: 'string', index: 'not_analyzed' },
"user" => { type: 'string', index: 'not_analyzed' },
"location" => {
type: 'geo_point',
properties: {
"slug" => { type: 'string', index: 'not_analyzed' }
}
},
"times" => { type: 'string', analyzer: 'keyword' },
"sport" => {
"properties" => {
"slug" => { type: 'string', index: 'not_analyzed' }
}
}
}
}
},
settings: {
index: {
number_of_shards: 1,
number_of_replicas: 0
}
})
refresh
end
注:構文の同じマッピングcurl
も機能しませんが、SOの方が読みにくいため、Rubyコードを投稿しています。
geo_point
ドキュメントのその部分の他のすべてのマッピングをオーバーライドしているようです。ドキュメントは同意しているようです。
このオプションを使用する方法があると確信していlat_lon
ますが、それがどのように機能するかについてのドキュメントは見つかりません。lat
(私は、個人とlon
フィールドを設定でマップすると仮定しlat_lon
ます)
フィールドタイプを使用しmulti
たかったのですが、メインドキュメント属性のサブツリー全体には当てはまらないようです。
データモデル全体を変更せずに続行するにはどうすればよいですか?