Обновления ElasticSearch не распознаны / Отключить управление версиями документов - PullRequest
0 голосов
/ 21 января 2019

Я использую ElasticSearch 6.5.4 - в настоящее время я записываю данные один раз в день непосредственно в несколько индексов просто с помощью POST Ajax Call, где идентификатор всегда будет одинаковым. Затем Elastic возвращает мне, что, если идентификатор не существует, документ был создан - или, если идентификатор существует, документ был обновлен.

Теперь я столкнулся с проблемой управления версиями, поскольку значения не обновляются. С помощью расширения ElasticHead я просматриваю детали документов и вижу, что у меня, например, документ хранится как «версия 9», но поля данных, такие как метка времени индекса, по-прежнему принадлежат «версии 1».

Я уже проверил, и я на самом деле не храню все версии - только последние. Elastic просто хранит индекс версий. Поэтому я не совсем уверен, почему, например, отметка времени не обновляется.

Что я хочу, так это в основном отключать управление версиями или как-то сообщать Elastic при каждом вызове публикации, что индексируемый мной документ является текущим, и он должен использовать только текущий для отображения. Все похожие проблемы, которые я обнаружил, точно не повторяют мою проблему, и ни одно из решений не может решить ее.

Эта проблема возникает из-за того, что я использую простой вызов POST Ajax? Может ли это быть решено с использованием Logstash в качестве конвейера загрузки (что я планирую сделать в любом случае в дальнейшем ходе проекта)?

Пример:

Data sent to Elastic
ajax.call - method.post - Result: 200
https://elasticURL.com/article/123456
{
     "customer": "Customer",
     "source": "Source",
     "categories": "/Category1/Category2/Category3/",
     "title": "My Title",
     "articletype": "MyType",
     "rating": 100,
     "ratingnormalized": 5,
     "views": 1234,
     "author": "Author",
     "timeindexed": "21/1/2019 10:00",
     "timeindexedDate": "21/1/2019",
     "timecreated": "13/10/2018 11:22",
     "timecreatedDate": "13/10/2018 ",
     "timeupdated": "13/10/2018 11:22",
     "timeupdatedDate": "13/10/2018 ",
     "url": "https://www.google.com",
     "category1": "Category: 1",
     "category2": "Category: 2",
     "category3": "Category: 3",
     "text": "MyText ",
     "html": "<html></html>"
}
Data stored in Elastic
{
"_index": "index_name",
"_type": "article",
"_id": "123456",
"_version": 3,
"_score": 1,
"_source": {
     "customer": "Customer",
     "source": "Source",
     "categories": "/Category1/Category2/Category3/",
     "title": "My Title",
     "articletype": "MyType",
     "rating": 100,
     "ratingnormalized": 5,
     "views": 1234,
     "author": "Author",
     "timeindexed": "04/1/2019 01:05",
     "timeindexedDate": "04/1/2019",
     "timecreated": "13/10/2018 11:22",
     "timecreatedDate": "13/10/2018 ",
     "timeupdated": "13/10/2018 11:22",
     "timeupdatedDate": "13/10/2018 ",
     "url": "https://www.google.com",
     "category1": "Category: 1",
     "category2": "Category: 2",
     "category3": "Category: 3",
     "text": "MyText ",
     "html": "<html></html>"
  }
}

Создание индекса

PUT - https://elasticURL.com/index_name
{
    "settings" : {
        "index" : {
            "number_of_shards" : 5, 
            "number_of_replicas" : 0 
        }
    }
}

Отображение индекса

PUT - https://elasticURL.com/index_name/_mappings
{
    "properties" : {
        "customer" : { "type" : "text" },
        "source" : { "type" : "text" },
        "categories" : { "type" : "text" },
        "articletype" : { "type" : "text" },    
        "title" : { "type" : "text" },
        "rating" : { "type" : "integer" },
        "ratingnormalized" : { "type" : "integer" },
        "views" : { "type" : "integer" },
        "author" : { "type" : "text" },
        "timeindexed" : { "type" : "date", "format" : "dd/MM/yyyy HH:mm"},
        "timeindexeddate" : { "type" : "date", "format" : "dd/MM/yyyy"},
        "timecreated" : { "type" : "date", "format" : "dd/MM/yyyy HH:mm"},
        "timecreateddate" : { "type" : "date", "format" : "dd/MM/yyyy"},
        "timeupdated" : { "type" : "date", "format" : "dd/MM/yyyy HH:mm"},
        "timeupdateddate" : { "type" : "date", "format" : "dd/MM/yyyy"},
        "url" : { "type" : "text" },
        "category1" : { "type" : "text" },
        "category2" : { "type" : "text" },
        "category3" : { "type" : "text" },
        "text" : { "type" : "text" },
        "html" : { "type" : "text" }
    }
}
+ keyword mapping for text fields, eg
        "text": {
            "type": "text",
            "fields": {
                "keyword": {
                    "ignore_above": 256,
                    "type": "keyword"
                }
            }
        },

Чтобы подвести итог это быстро; Например, поле timeindexed не обновляет новый POST для обновления данных. Только версия увеличивается. Индекс эластичности показывает документы: 4,488 (5,320).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...