В настоящее время я работаю над Elasticsearch с огромным количеством документов (около 500 КБ) в индексе. Я хочу хранить n-граммы текстовых данных каждого документа (это также огромно ~ per do c содержит 2 страницы текстовых данных) в другом индексе. Поэтому я рассчитал векторы терминов и их количество в каждом документе, чтобы сохранить их в новом индексе. Таким образом, я могу выполнить запросы агрегации для нового индекса.
Установка старого индекса позволила мне выполнить termvector и mtermvector API. Я не хочу отправлять слишком много запросов на сервер Elasticsearch за короткое время, поэтому я использую mtermvectors python API. Я пытаюсь получить термины-векторы 25 документов, передавая идентификаторы 25 документов.
Пример HTTP-URL после вызова API mtermvector в python
http://*servername*/elastic/*indexname*/article/_mtermvectors?offsets=false&fields=plain_text&ids=608467%2C608469%2C608473%2C608475%2C608477%2C608482%2C608485%2C608492%2C608498%2C608504%2C608509%2C608511%2C608520%2C608522%2C608528%2C608530%2C608541%2C608549%2C608562%2C608570%2C608573%2C608576%2C608577%2C608579%2C608585&field_statistics=true&term_statistics=true&payloads=false&positions=false
Иногда я получаю ожидаемый ответ, но в большинстве случаев я получаю следующую ошибку:
Proxy Error
The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request GET /elastic/*indexname*/article/_mtermvectors.
Reason: Error reading from remote server
Установка и отображение индекса
{
"settings": {
"analysis": {
"analyzer": {
"shingleAnalyzer": {
"tokenizer": "letter_tokenizer",
"filter": [
"lowercase",
"custom_stop",
"custom_shingle",
"custom_stemmer",
"length_filter"
]
}
},
"filter": {
"custom_stemmer": {
"type": "stemmer",
"name": "english"
},
"custom_stop": {
"type": "stop",
"stopwords": "_english_"
},
"custom_shingle": {
"type": "shingle",
"min_shingle_size": "2",
"max_shingle_size": "4",
"filler_token":""
},
"length_filter": {
"type": "length",
"min": 2
}
},
"tokenizer": {
"letter_tokenizer": {
"type": "letter"
}
}
}
},
"mappings": {
"properties": {"article_id":{"type": "text"},
"plain_text": {
"term_vector": "with_positions_offsets_payloads",
"store": true,
"analyzer": "shingleAnalyzer",
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
Я не думаю, что есть какие-либо проблемы с этим настройка и отображение, как иногда я получаю ожидаемый ответ.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация с моей стороны. Любая помощь будет оценена.