Hibernate поиск по нескольким полям на основе языка - PullRequest
0 голосов
/ 31 марта 2011

Меня интересует изменение полнотекстового поиска в БД на lucene.Я использую спящий режим, поэтому я думаю, что было бы разумно использовать поиск в спящем режиме.Однако у меня есть проблема.

В нашей записи есть список информации и названий на разных языках, и мне нужно иметь возможность искать на одном языке и на всех языках.

Возможно, я мог бы сделать это в простой люцене, но я не знаю, насколько хорошо это будет работать с текущими транзакциями.Поэтому было бы гораздо лучше использовать поиск в hibernate и hibernate для работы с индексом.

Можно ли создать такие поля в индексе для поиска, как я описал?

class Record{
    List<Info> infos;
}

class Info{
    String title;
    String infoText;
    String langCode;
}

Могу ли ясделай это так.Создайте получатели в записи следующим образом:

public String getEnghlishTitle () {...}

public String getFullInfos () {...}

А затем поместить индексные аннотации на эти геттеры и затем иметь необходимые поля в индексе?

1 Ответ

0 голосов
/ 02 апреля 2011

Я бы написал собственный FieldBridge для свойства infos. Тогда у вас есть полный контроль над тем, какие поля вы добавляете в индекс, например, вы можете использовать текст. как имена полей. Это должно позволить динамически решать, какой язык искать. Помните, что вы должны думать и об анализаторах. Будет работать пользовательский анализатор для каждого поля.

...