Отображение полей ElasticSearch GeoPoint

Мы храним документы, которые выглядят примерно так:

{
    "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 тип поля, но это не относится ко всем поддеревьям основных атрибутов документа.

Как я могу продолжить, не меняя всю мою модель данных?

1 ответ

Решение

Я боюсь, что вы должны изменить свою модель, так как geo_point является полным типом данных, и вы не можете добавить в него свойства (мета).

Другие вопросы по тегам