Я хотел бы использовать Lucene для индексирования таблицы в существующей базе данных. Я думал процесс, как:Lucene Indexing
- Создать «Поле» для каждого столбца в таблице
- магазин все поля
- «ПРОАНАЛИЗИРУЙТЕ» все поля для поля с первичным ключом исключением
- Храните каждую строку в таблице в виде документа Lucene.
Хотя большинство столбцов в этой таблице небольшие по размеру, один из них огромен. Этот столбец также содержит основную часть данных, по которым будут выполняться поисковые запросы.
Я знаю, что Lucene предоставляет возможность не хранить поле. Я думал о двух решениях:
- магазин поле, независимо от размера и, если удар будет найден для поиска, извлечения соответствующего поля из документа
- Не храните поле и если хит найдено для поиска, запрос базы данных, чтобы получить соответствующую информацию из
я понимаю, что не может быть один размер подходит всем ответ ...
+1 для ответа Паскаля. Вы также можете обозначить большое поле и * не хранить * его. Таким образом, вы можете запрашивать (искать) в поле, получать соответствующий идентификатор документа/записи и извлекать запись из db. – Mikos
Спасибо за ваши ответы. Если я предпочитаю не сохранять какое-либо поле, я также не смогу использовать выделение (Lucene contrib module), чтобы выделить поисковые запросы? –
Это можно сделать без сохранения текста, но это не простой способ. См. Http: //www.lucidimagination.com/search/document/5ea8054ed8348e6f/highlight_arbitrary_text # 60f592f5ff0de0c5 –