Создание типа данных в AWS DynamoDB и elasti c поиск списка URL-адресов - PullRequest
0 голосов
/ 21 февраля 2020

Я включил Aws Потоки DynamoDB и создал лямбда-функцию для индексации данных в Elasticsearch.

В моей таблице DynamoDb есть столбец с именем URL, в котором я собираюсь сохранить список URL-адресов. для одной строки.

URL наиболее предпочтительно похож на URL объекта из AWS S3 объектов

После потоковой передачи я индексирую данные в elasti c Поиск здесь, мой вопрос, что такое тип данных, если я предпочитаю хранить несколько URL-адресов как в DynamoDB (одна строка), так и в Elasticsearch (один документ)

Может ли кто-нибудь помочь мне добиться этого наиболее эффективным способом? Заранее спасибо

Json структура

 {
      "id":"234561",
      "policyholdername":"xxxxxx",
      "age":"24",
      "claimnumber":"234561",
      "policynumber":"456784",
      "url":"https://dgs-dms.s3.amazonaws.com/G-3114_Textract.pdf",
      "claimtype":"Accident",
      "modified_date":"2020-02-05T17:36:49.053Z",
      "dob":"2020-02-05T17:36:49.053Z",
      "client_address":"no,7 royal avenue thirumullaivoyal chennai"
    }

В будущем для одного номера заявки должно быть несколько URL. Итак, как с этим справиться?

1 Ответ

1 голос
/ 22 февраля 2020

Не уверен насчет типов БД Динамо. Но в Elasticsearch нет выделенного типа для списка. Для хранения списка строк (в вашем случае URL-адресов) вы можете использовать тип поля ключевого слова.

Например, ваши данные могут быть похожи на

 {
      "id":"234561",
      "policyholdername":"xxxxxx",
      "age":"24",
      "claimnumber":"234561",
      "policynumber":"456784",
      "url":["https://dgs-dms.s3.amazonaws.com/G-3114_Textract.pdf","https://foo/bar/foo.pdf"]
      "claimtype":"Accident",
      "modified_date":"2020-02-05T17:36:49.053Z",
      "dob":"2020-02-05T17:36:49.053Z",
      "client_address":"no,7 royal avenue thirumullaivoyal chennai"
    }

, а эквивалентное сопоставление эластичного поиска может быть

{
  "mappings": {
    "_doc": {
      "properties": {
        "url": {
          "type": "keyword"
        }
      }
    }
  }
}

и поисковый запрос может быть

POST index/_search
{
    "query": {
        "term": {
            "url": "https://foo/bar/foo.pdf"
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...