Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Информация | ||
---|---|---|
| ||
Корневой элемент search-area. Пространство имен: <configuration xmlns="https://cm5.intertrust.ru/config"> |
Информация | ||||
---|---|---|---|---|
| ||||
Конфигурация описывающая правила маппинга информации из ДОП-ов в индекс Solr |
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
<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>session.find(ctx.get('HierRoot')).getDomainObject().getTypeName() == 'F_DP_InputRkk'</conditions-script-->
<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. Варианты:
|
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
JS-скрипт, внутри которого проверяется, подходит ли ДОП под условие
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 и подход к формированию строки. Варианты:
| |||||
include-everywhere | Включать ли строковое значение в полный поиск | |||||
filter | Настройка фильтрации индексации данного поля, позволяет описать условия фильтрации для необходимости индексации поля |
compound-field
Элемент, позволяющий собрать информацию из нескольких ОДОП, в одно nested поле
Параметры | Описание |
---|---|
order-script | JS-скрипт, описывающий алгоритм сортировки внутри строки |
field-part | Описание получения части комплексного индекса, либо DoEL-выражение, либо JavaScript |
delimiter | Элемент, позволяющий собрать информацию из нескольких ОДОП, в одно nested поле |
doel
DoEL-выражение для получения из таблицы информации для индексации
script
JS-скрипт, описывающий алгоритм получения индексируемой информации
Параметры | Описание |
---|---|
script | JS-скрипт |
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 |
boost-every-where
Настройка весов полей при полном поиске
Параметры | Описание |
---|---|
base | Базовый вес всех полей, кроме содержания |
content | Базовый вес содержимого содержания |
field-boost
Перечисление полей с особым весом, который может быть только больше базового
Параметры | Описание |
---|---|
name | Имя индекса, к которому применяется буст |
value | Буст для индекса |
Свойства страницы | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
панель | |
---|---|
Теги и атрибуты:
|