Это возможно, да, и мы делаем это на паре решений на моем рабочем месте. Вот разумное руководство, как это сделать .В этом руководстве используется Solr, который является хорошей реализацией Lucene.Чтобы ответить на ваши вопросы напрямую:
Да, есть способ сделать это путем переопределения интерфейсов и обеспечения собственной реализации (см. Учебное пособие).Токенизация может быть выполнена без необходимости переопределять классы в конфигурации Solr по умолчанию, в зависимости от того, насколько вам нужно получить фанки от Tokenization.
Да, создание индекса, который будет возвращать точные результаты, является мерой в понимании того, как ваши пользователи будут искать в индексе.Это, как уже было сказано, большая часть сложности в том, как поиск запросов происходит от людей, которые хотят, чтобы совпадающие результаты попали в верхнюю часть списка результатов, что делается с помощью скоринга.Учитывая, что кажется, что вы хотите изменить оценку, это может не иметь значения для вас.Однако следует отметить, что по умолчанию Lucene будет сопоставлять попадания с несколькими столбцами выше, чем одно совпадение точно по одному столбцу.Это означает, что если вы храните данные по многим столбцам (и вы выполняете поиск по многим столбцам), ваш поиск будет становиться все менее и менее «точным».
Полнотекстовый поиск по одному столбцу имеет тенденцию быть довольно точной фразой против слов, но в итоге вы получите довольно большой индекс.