- Создатель Васильев Антон, отредактировано 15.01.2024
Вы просматриваете старую версию данной страницы. Смотрите текущую версию.
Сравнить с текущим просмотр истории страницы
« Предыдущий Версия 15 Следующий »
<search-area name="{name}" replace="runtime"> <boost-every-where base="2.0"> <field-boost name="regFullNumber" value="20.0"/> <field-boost name="subject" value="10.0"/> </boost-every-where> <!-- Исполнение --> <target-domain-object type="F_DP_Report"> <!-- Модуль --> <indexed-field name="Module"> <doel>Module</doel> </indexed-field> <!-- Текст отчета --> <indexed-field name="reportText" search-by="exactmatch"> <doel>Text</doel> </indexed-field> <target-collection name="F_DP_Report_(search)"/> <filter> <conditions-script> <![CDATA[ var result = false; var typeName = session.find(ctx.get('HierRoot')).getDomainObject().getTypeName(); var qqz=ctx.get('Module.Type.Alias'); if (typeName.equals('F_DP_InputRkk') && (qqz.equals('InputDocs') || qqz.equals('InputDocsPrev'))){ result=true; } ctx.setResult(result); ]]> </conditions-script> </filter> </target-domain-object> <!-- Резолюция --> <target-domain-object type="F_DP_Resolution"> <!-- Модуль --> <indexed-field name="Module"> <doel>Module</doel> </indexed-field> <target-collection name="F_DP_Resolution_(search)"/> <filter> <conditions-script> <![CDATA[ var result = false; var typeName = session.find(ctx.get('HierRoot')).getDomainObject().getTypeName(); var qqz=ctx.get('Module.Type.Alias'); if (typeName.equals('F_DP_InputRkk') && (qqz.equals('InputDocs') || qqz.equals('InputDocsPrev'))){ result=true; } ctx.setResult(result); ]]> </conditions-script> </filter> </target-domain-object> <!-- Документ --> <target-domain-object type="F_DP_InputRkk"> <!-- Модуль --> <indexed-field name="Module"> <doel>Module</doel> </indexed-field> <!-- Получение нр-поля --> <linked-domain-object type="Tn_Field_String" nested="true"> <indexed-field name="initBranch"> <doel>value:split("%"):getString("0")</doel> <filter> <doel>cmjfield:in("initBranch")</doel> </filter> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <!--Содержание--> <indexed-content type="F_ContentRichText_Rkk"/> <indexed-content type="F_ContentFiles_Rkk"/> <indexed-content type="F_AddFiles_Rkk"/> <!-- Регистратор --> <indexed-field name="Registrator" search-by="substring" > <doel>RegRegistrator.orig_shortname</doel> </indexed-field> <!-- Место регистрации --> <indexed-field name="Registration" search-by="substring" > <doel>RegCode.orig_shortname</doel> </indexed-field> <!-- Дата документа --> <indexed-field name="rdate"> <doel>RegDate</doel> </indexed-field> <!-- Адресат --> <linked-domain-object type="F_DP_InputRkk_Addressee"> <indexed-field name="To" search-by="substring" > <doel>Addressee.orig_shortname</doel> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <!-- Дело --> <linked-domain-object type="FD_Rkk_BelongToFile"> <!-- Заголовок дела --> <indexed-field name="fdDocName" search-by="substring" > <doel>Card.title</doel> </indexed-field> <indexed-field name="fdNumber" search-by="substring" > <script> var card = session.find(ctx.get('Card')); var cardCode = card.get('code'); var cardNumber = card.get('number'); if(cardCode != null){ var codeNum = cardCode+'-'+cardNumber; ctx.setResult(codeNum); } else { var codeNum = cardNumber; ctx.setResult(codeNum); } </script> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <!-- Особая отметка --> <linked-domain-object type="F_DP_RkkWORegAndCtrl_SMrk"> <indexed-field name="specMark" search-by="substring"> <doel>specmark</doel> </indexed-field> <parent-link> <doel>Owner</doel> </parent-link> </linked-domain-object> <target-collection name="InputDocs_(search)" /> <filter> <doel>Module.Type.Alias:in("InputDocs", "InputDocsPrev")</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 - поиск с учётом " и *
target-domain-object
Описание правил индексации в рамках ДОП-а (таблица в БД SQL)
Параметры | Описание |
---|---|
type | Тип ДОП-а (имя таблицы) |
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 | Название коллекции используемая для постфильтрации данных ДОПа. |
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 |
Статус | ГОТОВО |
---|---|
Комментарий |
Теги и атрибуты:
- Нет меток