Поисковый движок?

Недавно мне понадобился поиск с опечатками и тп. Поставил elasticsearch. Из коробки поиск работает хорошо, но у меня никак не получилось отсортировать результат по алфавиту. Например, есть словосочетания:
System of a down
My own system
System 27
Presystem
Systemode

Мне нужно, чтобы пользователь, написав "system" получил в первую очередь строки, которые начинаются с этого слова. Эластиксёрч же по умолчанию индексирует каждое слово в словосочетании отдельно и выдает результат не так как мне нужно. Я пробовал менять токенайзер и тп. Пробовал примерно так:
{
    "settings": {
        "index": {
            "analysis": {
                "analyzer": {
                    "analyzer_startswith": {
                        "tokenizer": "keyword",
                        "filter": "lowercase"
                    }
                }
            }
        }
    },
    "mappings": {
        "test_index": {
            "properties": {
                "title": {
                    "search_analyzer": "analyzer_startswith",
                    "index_analyzer": "analyzer_startswith",
                    "type": "string"
                }
            }
        }
    }
}


И искать с помощью match_phrase_prefix. Но в этом случае перестает работать поиск с опечатками. В общем как я только не эксперементировал, мне не удалось настроить такую простую вещь. Документация у эластика ужасная!
Подскажите, как с этим у других движков, типа сфинкса или солр? Проще в плане настройки.
Каким движком пользуетесь вы?
  • Вопрос задан
  • 1461 просмотр
Пригласить эксперта
Ответы на вопрос 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
от 150 000 руб.
Improve Media Москва
от 100 000 до 130 000 руб.
Мешок Санкт-Петербург
от 120 000 руб.
23 окт. 2018, в 16:52
700 руб./в час
23 окт. 2018, в 16:14
200000 руб./в месяц