Мы пытаемся использовать Elastic Search в Rails-приложении и хотели бы использовать любой пример ввода/кода для реализации функции "вы имели в виду". По сути, мы хотим предоставить конечному пользователю возможность поиска альтернативного запроса, например, в google.
Упругий поиск - реализовать "Вы имели в виду"
Ответ 1
Начиная с версии 0.90.0.Beta1, ElasticSearch имеет включенную функцию "term suggest", которая является тем, что вы ищете:
http://www.elasticsearch.org/guide/reference/api/search/term-suggest/
например. получить от этого запроса: "devloping distibutd saerch engies" этот результат: "разработка распределенных поисковых систем"
Ответ 2
У Elasticsearch еще нет его, он открывается как проблема здесь в основном он ждет следующего Lucene релиз.
Я добился аналогичного поведения "вы имели в виду" с помощью фонетических анализаторов которые работали для моего использования, имена мест, которые не являются собираюсь работать для всех случаев использования.
примерное отображение: - https://gist.github.com/1171014
чтобы вы могли запросить с помощью REST api, как это (неправильно настроенный лондон): -
{
"query": {
"field": {
"nameSounds": "lundon"
}
}
}
Ответ 3
Вы можете использовать нечеткий поиск:
"fuzzy" : {
"user" : {
"value" : "Jon",
"boost" : 1.0,
"fuzziness" : 3,
"prefix_length" : 0,
"max_expansions": 100
}
}
Проверьте эту ссылку для нечетких: http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-fuzzy-query.html