Я получил 1 вызов через тест-интервью. Требование теста состоит в том, чтобы создать поисковую систему, которая получает данные из текстового файла, и каждый раз, когда пользователь вводит слово, она будет возвращать результаты.
Второе требование:
Учитывая одно слово x, обновить корпус поиска с помощью x. Новое слово x должно быть немедленно запрашиваемый.
3-е требование:
Учитывая одно слово y, удалите слово, наиболее похожее на y в корпусе, из дальнейших результатов поиска.
Я никогда раньше не создавал поисковую систему.
Как я могу создать его с помощью NodeJ и в чем смысл 2-го и 3-го требований?
Спасибо!





На это есть множество примеров, которые вы можете легко прочитать: https://www.google.com/search?q=build+a+search+engine+with+node.js
2 = обновить поисковые индексы (данные, которые можно запросить) с текстом x
3 = Найдите слово в ваших поисковых индексах, ближайшее к тексту y, и удалите это слово из индекса, чтобы его нельзя было запрашивать в дальнейших запросах.
Примечание: определение корпуса -> https://en.wikipedia.org/wiki/Text_corpus
Посмотрите на elasticsearch, это очень хороший вариант использования для этих вариантов использования свободного текстового поиска. Он использует lucene внизу для обеспечения этих поисков, которые используют что-то, называемое инвертированным индексом (прочитайте об этой структуре для эффективных запросов к свободному тексту).
Он имеет функции для таких запросов с произвольным текстом и нечеткого сопоставления (пункт 3 в вашем требовании).
Загрузите данные в elasticsearch и напишите конечные точки на уровне приложения nodejs, которые могут
Спасибо за ваш ответ, я закончил с elasticsearch.
Привет, спасибо за ответ на мой вопрос, я нашел ответ для создания поисковой системы, следующий шаг, который мне нужно сделать, это сопоставить данные из txt-файла с Elasticsearch?