- Создатель Васильев Антон, отредактировано 19.01.2024
Краткое описание
<search-area name="{name}" replace="runtime"> <solr-server-url>search.wd.solr.server</solr-server-url> <content-search-by>words</content-search-by> <target-filter-name>CNTX_ID_FILTER</target-filter-name> <highlighting-config hl-require-match="true" hl-frag-size="255" hl-post-tag="</b>" hl-pre-tag="<b>"/> <boost-every-where base="2.0"> <field-boost name="{name}" value="20.0"/> </boost-every-where> <!-- Дочерний КДОП --> <target-domain-object type="{name дочернего КДОП}"> <!-- Модуль --> <indexed-field name="Module"> <doel>Module</doel> </indexed-field> <!--Получение значения из КДОП-а --> <indexed-field name="{name}" search-by="exactmatch"> <doel>{DOEL-выражение}</doel> </indexed-field> <target-collection name="{name КДОП}_(search)"/> <filter> <conditions-script> <![CDATA[...]]> </conditions-script> </filter> </target-domain-object> <!-- Документ --> <target-domain-object type="{name основного КДОП}"> <!-- Модуль --> <indexed-field name="Module"> <doel>Module</doel> </indexed-field> <!-- Получение нр-поля --> <linked-domain-object type="Tn_Field_String" nested="true"> <indexed-field name="{name нр-поле}"> <doel>value:split("%"):getString("0")</doel> <filter> <doel>cmjfield:in("{name нр-поле}")</doel> </filter> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <!--Содержание--> <indexed-content type="{name}"/> <!--Получение значения из КДОП-а --> <indexed-field name="{name}" search-by="substring" > <doel>{DOEL-выражение}</doel> </indexed-field> <!--Получение значения из ОДОП-а--> <linked-domain-object type="{name ОДОП-а}"> <indexed-field name="{name}" search-by="substring" > <doel>{DOEL-выражение}</doel> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <target-collection name="{name основного КДОП}_(search)" /> <filter> <doel>Module.Type.Alias:in("{module name}")</doel> </filter> </target-domain-object> </search-area>
attributes
Параметры | Описание |
---|---|
name | Имя области поиска Правило формирования названия области поиска:
|
replace | Возможность заменять область поиска поставляемую вместе с сервером CMJ. Варианты:
|
boost-every-where
Настройка весов полей при полном поиске
Параметры | Описание |
---|---|
base | Базовый вес всех полей, кроме содержания |
content | Базовый вес содержимого содержания |
field-boost
Перечисление полей с особым весом, который может быть только больше базового
Параметры | Описание |
---|---|
name | Имя индекса, к которому применяется буст |
value | Буст для индекса |
solr-server-url
Имя сервера Solr
target-filter-name
Имя фильтра который используется для проверки вхождения id найденных документов в определенную SQL коллекцию. Коллекция задаётся в файле поиска.
content-search-by
Модификатор, определяющий, как организован полный поиск. Варианты:
- word - поиск идет по вхождению каждого отдельного слова, с применением морфологии
- substring - поиск идет по вхождению выражения целиком без применения морфологии
- wildcard - поиск с учётом " и *
highlighting-config
Настройки подсветки результатов при контекстном\умном поиске
Параметры | Описание |
---|---|
enable | Включено ли выделение для данной области поиска |
hl-require-match | Поле без изменений маппится на hl.requireFieldMatch (см. документацию solr). По умолчанию: false |
hl-phrase | Поле без изменений маппится на hl.usePhraseHighlighter (см. документацию solr). По умолчанию: false |
hl-multiterm | Поле без изменений маппится на hl.highlightMultiTerm (см. документацию solr) . По умолчанию: false |
hl-pre-tag | Поле без изменений маппится на hl.pre (см. документацию solr). По умолчанию: <hl> |
hl-post-tag | Поле без изменений маппится на hl.simple.post (см. документацию solr). По умолчанию: </hl> |
hl-snippet-count | Поле без изменений маппится на hl.snippets (см. документацию solr). По умолчанию: 5 |
hl-frag-size | Поле без изменений маппится на hl.fragsize (см. документацию solr). По умолчанию: 30 |
target-domain-object
Описание правил индексации в рамках приладного КДОП-а (таблица в БД SQL)
filter
Настройка агрегатор определяющая, какие КДОП-ы должны быть включены в индекс, если отсутствует, то включаются все ДОП-ы
Параметры | Описание |
---|---|
op | Способ совмещения вложенных условий. Варианты: AND\OR. По умолчанию: OR |
class-name
Имя класса выполняющего проверку, подходит ли КДОП под фильтр
search-query
SQL-выражение для фильтрации, в него подставляется id обрабатываемого документа
conditions-script
JavaScript, внутри которого проверяется, подходит ли КДОП под условие
doel
DoEL проверяющий, подходит ли КДОП под условие
filter
Вложенный фильтр, на случай, если нужна комбинация И и ИЛИ
indexed-field
Описание индексируемого поля из текущего КДОП-а
Параметры | Описание |
---|---|
name | Имя индекса Solr |
language | Список локализаций, которые необходимо добавить в индекс, указывается через ; |
solr-prefix | Префикс к имени индекса в Solr |
show-in-results | Добавлять ли поле, полученное от Solr в результаты запроса возвращаемые платформой |
multi-valued | Поле с множественным значением |
target-field-name | Поле, на которое отображается в результат поле, при включенной show-in-results |
index-boost-value | Бусты для индексированного содержания, в 8 версии Solr не поддерживается, рекомендуется использовать boost-every-where.content |
search-by | Модификатор строки при поиске. Влияет на доступность wildcard и подход к формированию строки. Варианты:
Переключение между режимами wildcard/substring не требует переиндексации |
include-everywhere | Включать ли строковое значение в полный поиск |
filter | Настройка фильтрации индексации данного поля, позволяет описать условия фильтрации для необходимости индексации поля |
compound-field
Элемент, позволяющий собрать информацию из нескольких ОДОП, в одно nested поле
Параметры | Описание |
---|---|
order-script | JS-скрипт, описывающий алгоритм сортировки внутри строки |
field-part | Описание получения части комплексного индекса, либо DoEL-выражение, либо JavaScript |
delimiter | Элемент, позволяющий собрать информацию из нескольких ОДОП, в одно nested поле |
doel
DoEL-выражение для получения из таблицы информации для индексации
script
JavaScript, описывающий алгоритм получения индексируемой информации
Параметры | Описание |
---|---|
script | JavaScript |
return-type | Возвращаемый скриптом тип данных |
Если не указаны Doel-выражение и скрипт, то берётся поле из КДОП-а, имя которого совпадает с именем индекса.
indexed-content
Описание связанного ОДОП-а (ДОП, подчиненный КДОП-у, как правило с помощью обратной ссылке), который содержит содержание, которое необходимо добавить в индекс
Параметры | Описание |
---|---|
type | Имя ДОПа индексируемого содержания |
parent-fk-field | Имя поля, которое содержит ссылку на КДОП, необходимо для индексирования содержания вместе с КДОП |
index-boost-value | Бусты для индексированного содержания, в 8 версии solr не поддерживается, рекомендуется использовать boost-every-where.content |
content-field
Описание служебных полей, которые необходимо дополнительно проиндексировать
filter
Настройка фильтрации индексации данного поля, позволяет описать условия фильтрации для необходимости индексации поля
linked-domain-object
Описание связанного ОДОП-а, поля из которого необходимо добавить в индекс
Параметры | Описание |
---|---|
reindex-on-parent | Производить ли переиндексацию ОДОП-а при пересохранении КДОП. Варианты: |
nested | Включать ли поля ОДОП в корневой Solr документ. Обязательно при индексировании полей хранимых на НР |
parent-link
DoEL-выражение, в котором написан алгоритм получения id КДОП
target-collection
Описание индексации КДОП (корневой (обособленный) ДОП)
Параметры | Описание |
---|---|
name | Название коллекции используемая для постфильтрации данных ДОП-а. |
Статус | ГОТОВО |
---|---|
Комментарий |
Теги и атрибуты: