API поиска с коллекциями полей

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

Мои типы контента основаны на нескольких коллекциях полей, содержащих множество текстовых полей, которые должны быть доступны для поиска.

Поля, принадлежащие коллекции полей (например, подзаголовок, текст и т. д.), отсутствуют и НЕ индексируются. Что я могу сделать, чтобы добавить их в поисковый индекс?


person Mark    schedule 01.08.2013    source источник
comment
Привет, опоздал на несколько лет, но ты понял это?   -  person ConorBaumgart    schedule 16.08.2017


Ответы (1)


Добавьте поле «коллекция» в 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"/>
person Shad Amez    schedule 02.08.2013