Индекс CLOB столбца Lucene - PullRequest
0 голосов
/ 06 мая 2011

Привет Мы ищем механизм поиска в нашем приложении, который содержит множество реляционных таблиц, содержащих содержимое CLOB.У нас есть требования, чтобы наши пользователи могли выполнять поиск по этой информации.Мы изучаем Oracle Text, но пока не нашли хороших новостей об этом продукте.

Мы думаем о том, чтобы прочитать CLOB в некотором процессе, извлекая данные и индексируя эти данные.Наши пользователи будут выполнять поиск, и мы сопоставим индекс с rowid в наших таблицах и представим результаты нашим пользователям.

Это хорошая задача для Люсена, или я не думаю правильно?

1 Ответ

0 голосов
/ 07 мая 2011

Вы должны иметь возможность добавить текст в вашем CLOB в одно поле и идентификатор строки в другое поле.Если CLOB уже сохранен в вашей БД, не сохраняйте его снова в индексе Lucene (используйте Store.NO при добавлении текстового поля).Сохраните идентификатор строки.Когда документ совпадает, вы можете извлечь поле идентификатора строки из результатов и использовать его для ссылки на вашу таблицу.

String rowid = ...; // row id from DB
String text = ...; // data from CLOB;
Document doc = new Document();
doc.add(new Field(FIELD_ID, rowid, Store.YES, Index.NOT_ANALYZED));
doc.add(new Field(FIELD_BODY, text, Store.NO, Index.ANALYZED, TermVector.YES));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...