Мы запустили приложение для поиска книг. Реализуется поиском в спящем режиме.
Сущность книги определяется следующим образом:
@Entity
@Indexed
public class Book{
@DocumentId
private Integer UID;
@Field
private String title;
@Field
private String description;
...}
Если пользователь ищет название книги, скажем, ввод Microsoft Access 2007, книги с названием или описанием содержат Microsoft, Access или 2007 возвращены. Это то, что мы ожидали. Некоторые книги совершенно не связаны из-за ключевого слова 2007. Я ищу решение, чтобы понять важность каждого ключевого слова. В этом случае 2007 год менее важен в поиске. Но для этого поиска нет разницы для Microsoft, Access или 2007.
Второй случай: есть ли хороший анализатор, который можно использовать при индексировании и запросах для поддержки нескольких фраз? Я думал, что стандартный анализатор поиска в спящем режиме просто разбивает поисковые слова на одно слово?
Если поисковыми словами является Microsoft Access 2007, результаты имеют лучший результат, если они содержат «Microsoft Access»,
другой пример поиска: "город с соленым озером", "соединенные штаты", результаты не ожидаются, если только они соответствуют соли, городу или озеру или, по крайней мере, они должны отставать от результатов с "городом солевого озера".
Может кто-нибудь предложить мне несколько подсказок?
спасибо!