API поиска с полевыми коллекциями
Проблема: я хочу проиндексировать элементы своей коллекции полей, чтобы они были доступны для поиска пользователем.
Мои типы контента основаны на нескольких коллекциях полей, которые содержат много текстовых полей, которые должны быть доступны для поиска.
Поля, принадлежащие Коллекции полей (например, субтитры, текст и т. Д.), Отсутствуют и НЕ индексируются. Что я могу сделать, чтобы добавить их в поисковый индекс?
1 ответ
Добавьте поле "collection" в schema.xml, как показано ниже.
<field name="collection" type="text_general" indexed="true" stored="false" multiValued="true"/>
Он не сохраняется, так как другие поля, попадающие под поле сбора (например, текст, субтитры), будут скопированы в это поле.
Поэтому определите текст поля, субтитры, а затем скопируйте их, используя copyField, в поле коллекции, как показано ниже.
<field name="text" type="text_general" indexed="true" stored="true" />
<field name="subtitle" type="text_general" indexed="true" stored="true" />
Теперь скопируйте два вышеупомянутых поля в поле коллекции, как показано ниже.
<copyField source="text" dest="collection"/>
<copyField source="subtitle" dest="collection"/>