Предложение на завершение в Elasticsearch не работает - PullRequest
0 голосов
/ 20 мая 2019

(с использованием ES 6.7) У меня есть индекс и я хочу поддерживать функцию поиска по мере ввода. Для этого я хочу попробовать подсказку завершения, но у меня возникают проблемы с переиндексацией, чтобы изменить старый индекс сопоставлений.

Вот старые сопоставления индексов

{
    "old-index": {
        "mappings": {
            "doc": {
                "properties": {
                    "content": {
                        "type": "text"
                    },
                    "project": {
                        "type": "keyword"
                    },
                    "title": {
                        "type": "text"
                    },
                    "version": {
                        "type": "keyword"
                    }
                }
            }
        }
    }
}

Вот новые сопоставления тестовых индексов

PUT test-completion
{
    "mappings": {
        "doc": {
            "properties": {
                "content": {
                    "type": "text",
                    "fields": {
                        "autocomplete": {
                            "type": "completion",
                            "contexts": [
                                {
                                    "name": "project",
                                    "type": "category",
                                    "path": "project"
                                },
                                {
                                    "name": "version",
                                    "type": "category",
                                    "path": "version"
                                }
                            ]
                        }
                    }
                },
                "title": {
                    "type": "text"
                },
                "project": {
                    "type": "keyword"
                },
                "version": {
                    "type": "keyword"
                }
            }
        }
    }
}

Вот запрос переиндексации

POST _reindex
{
    "source": {
        "index": "old-index"
    },
    "dest": {
        "index": "test-completion"
    }
}

А вот запрос, который не дает результатов

POST test-completion/_search
{
    "suggest": {
        "autocompletion_suggest": {
            "prefix": "part of documentation",
            "completion": {
                "field": "content.autocomplete",
                "fuzzy": {
                    "fuzziness": "AUTO"
                },
                "contexts": {
                    "project": "xyz-project",
                    "version": "abc-version"
                }
            }
        }
    }
}

Если префикс установлен на a или b, он возвращает результаты вне контекста. Где я делаю не так?

https://discuss.elastic.co/t/problem-with-completion-suggester/181695

...