Дерево страниц
Skip to end of metadata
Go to start of metadata
Корневой элемент search-area. Пространство имен: <configuration xmlns="https://cm5.intertrust.ru/config">

Краткое описание

Конфигурация описывающая правила маппинга информации из прикладных КДОП-ов в индекс Solr

Структура XML
<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

Имя области поиска

Правило формирования названия области поиска:

  • <Тип приложения> - для простого и расширенного поиска
  • <Тип приложения> + "_context"  - для контекстного поиска
  • <Тип приложения> + "_uicoll"  - для поиска из представления
  • <Тип приложения> + "_uicoll_template"  - для поиска из представления с шаблонами
  • <Тип приложения> + "_wd" - для простого поиска из WebDocs
  • <Тип приложения> + "_wd_ext" - для расширеного поиска из WebDocs

replace

Возможность заменять область поиска поставляемую вместе с сервером CMJ.

Варианты:

  • runtime - разрешено обновлять
  • none - не разрешено обновлять

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)

ПараметрыОписание

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 - поиск идет по вхождению выражения целиком без применения морфологии, поддерживает *
  • exactmatch - поиск по точному совпадению, поддерживает *. Требует переиндексацию при изменении

Переключение между режимами 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

Производить ли переиндексацию ОДОП-а при пересохранении КДОП.

Варианты:

  • never - никогда
  • create - при создании КДОП
  • change - при изменении КДОП
nested
Включать ли поля ОДОП в корневой Solr документ. Обязательно при индексировании полей хранимых на НР

DoEL-выражение, в котором написан алгоритм получения id КДОП

target-collection

Описание индексации КДОП (корневой (обособленный) ДОП)

ПараметрыОписание
name
Название коллекции используемая для постфильтрации данных ДОП-а.
Статус

ГОТОВО

Комментарий

Теги и атрибуты: