Вообще в Lucene формулы ранжирования предназначены именно для задачи ранжирования, и поэтому кажется что эту задачу они не покроют. Но, всегда можно реализовать свою формулу сделав свою реализацию от класса Similarity :)
Смотрите, автозамена обходится очень просто: чуть ниже поисковой строки есть строчка «Ключевые слова добавлены в параметры поиска — Отменить», и это отключит применение автозамены для текущего запроса.
Что касается самого кейса с Not — сейчас автозамена применяется до языка запроса, поэтому так работает. Подумаем как сделать лучше, спасибо!
Многое из описанного уже реализовано в поисковых движках, которые написаны на разных языках: Lucene на Java, Sphinx на C++. Так же есть порт Lucene на C# под названием Lucene.Net.
Что касается наших доработок в hh, все пишется на java, тк у нас используется lucene.
Да, мы все так же используем «чистый» Lucene, для репликации используется lucene-replicator. Шардирование сейчас реализовано по сущностям — под каждую сущность свой индекс (резюме, вакансии, работодатели и тд), так же есть шардирование в индексе резюме по user id. И это все разруливается как раз на мета поиске.
По второму вопросу: c такой проблемой не встречались
www.youtube.com/playlist?list=PLGn25JCaSSFQQOab_xMXI3vJ0tDUkFaCI
Что касается самого кейса с Not — сейчас автозамена применяется до языка запроса, поэтому так работает. Подумаем как сделать лучше, спасибо!
Что касается наших доработок в hh, все пишется на java, тк у нас используется lucene.
По второму вопросу: c такой проблемой не встречались