Я создаю бота, который следит за HN по темам, которые меня интересуют.
Я бы хотел проанализировать строку в памяти и определить, содержит ли она некоторые ключевые слова, которые меня интересуют.
Я бы хотел принять во внимание то, что делает Lucene при выполнении стандартного запроса (определение слова, стоп-слова, нормализация знаков препинания и т. Д.).
Я мог бы, вероятно, построить индекс в памяти и запросить его, используя обычный подход, но есть ли способ, которым я могу использовать внутреннее устройство Lucene, чтобы избежать создания ненужного индекса?
Бонусные баллы, если я могу получить значение релевантности (0.0-1.0) вместо просто значения true / false.
Псевдокод:
public static decimal IsRelevant(string keywords, string input)
{
// Does the "input" variable look like it contains "keywords"?
}
IsRelevant("books", "I just bought a book, and I like it."); // matching!
IsRelevant("book", "I just bought many books!"); // matching!