1.3. Пример индексирования и поиска
Рассмотрим приведенный выше простейший пример со связанными сущностями Order
и Customer
.
В данном случае, если все атрибуты объектов являются индексируемыми, при индексации двух связанных экземпляров Order
и Customer
будут созданы два документа Lucene примерно следующего содержания:
id: Order.id = "b671dbfc-c431-4586-adcc-fe8b84ca9617"
all: Order.number + Order.date + Order.amount = "001^2013-11-14^1000"
links: Customer.id = "f18e32bb-32c7-477a-980f-06e9cc4e7f40"
id: Customer.id = "f18e32bb-32c7-477a-980f-06e9cc4e7f40"
all: Customer.name + Customer.email = "John Doe^john.doe@mail.com"
Теперь предположим, что ищется строка "john":
-
Сначала производится поиск в полях
all
всех документов. Будет найденCustomer
, и добавлен в результаты поиска. -
Затем будет произведен поиск идентификатора найденного покупателя в полях
links
всех документов. Будет найденOrder
, и он также будет добавлен в результаты поиска.