Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Свойства страницыСтатус СтатусcolourYellowtitleВ работеАвторКомментарий
панель

На этой странице:

Оглавление

Постановка задачи

Добавить поиск для нового модуля.

Инструмент


Подсказка
iconfalse

Инструмент: Палитра XML, Плагин, Настройка

системы

системы

Свойства страницы
Статус

Статус
colourBlue
titleДОРАБОТКА

РазделПоиск
КомментарийИнформация по настройкам параметра поиска находится здесь Описание конфигурации поиска





Реализация

note
Информация
iconfalse
Дорожная карта

Последовательность действий по реализации поиска:

  1. Редактирование конфигурации поиска applicationContext-config-
search<Project>
  1. search{Project}.xml
  2. Создание области поиска
<Module>
  1. {Module}_area.xml
  2. Подключение области поиска к кастомным коллекциям
<Module>
  1. {Module}_(
<Collection>
  1. {Collection})Metadata.xml
  2. Загрузить конфигурацию поиска и перезагрузить сервер
  3. Загрузить область поиска
  4. Запуск плагина реиндексации ru.intertrust.cm_sochi.plugins
.SolrReindexingPlugin
  • Создание области поиска в системе
  • Подключение области поиска в портальный профиль
  • Легенда: 

  • <Project> - название проекта
  • <Module> - название модуля
  • <Collection> - название коллекции
  • <Basic Module> - базовый модуль
  • <Object> - название объекта
  • <Basic Object> - базовый объект
    1. .SolrReindexingPlugin
    2. Создание области поиска в системе
    3. Подключение области поиска в портальный профиль


    Редактирование конфигурации поиска

    Определение параметров поиска

    Блок кода
    languagexml
    titleПараметр поиска
    linenumberstrue
    collapsetrue
        <!--Дата-->
    	<bean id="exampleDate" class="ru.intertrust.cmj.af.search.dp.CmParameter"
              c:id="testDate" c:name="Дата:"
              c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tdateinterval"/>
     	<!--Сотрудник-->
    	<bean id="exampleVCard" class="ru.intertrust.cmj.af.search.dp.CmParameter"
              c:id="testVCard" c:name="Сотрудник:"
              c:messageSource-ref="cmj_af_search_messageSource" c:type-ref="tvcard">
            <constructor-arg name="classifier">
                <list value-type="ru.intertrust.cmj.af.search.Classifier">
                    <ref bean="fvCurrHumanHH"/>
                    <ref bean="clCurSysEmps"/>
                    <ref bean="clNosys"/>
                </list>
            </constructor-arg>
        </bean>
    ПодсказкаИнформация по настройкам параметра поиска находится здесь Описание конфигурации поиска

    Подключение параметров поиска к форме

    Блок кода
    languagexml
    title
    Бандл
    Отображение на поисковой форме
    linenumberstrue
    collapsetrue
    <bean id="
    rkkSuperBundle<Module>
    rkkSuperBundle{Module}" abstract="true" class="ru.intertrust.cmj.af.search.dp.CmBundle">
            <constructor-arg index="0" value="rkk"/>
            <constructor-arg index="1"
                             value="
    <Object>
    {Object}"/>
            <constructor-arg index="2">
                <list>
                    <ref bean="exampleDate"/>
                    <ref bean="exampleVCard"/>
                </list>
            </constructor-arg>
            <constructor-arg index="3" ref="cmj_af_search_messageSource"/>
        </bean>

    Определение модуля 

    Блок кода
    languagexml
    titleПодключение модуля
    linenumberstrue
    collapsetrue
    <bean id="
    attorneySearcher
    {module}Searcher" class="ru.intertrust.cm_sochi.srv.connector.sochi.search.SochiSolrSearcher">
            <constructor-arg name="cmAppSystemId" value="
    <Module>
    {Module}"/>
            <constructor-arg name="isNamed" value="true"/>
            <constructor-arg name="searchArea" value="
    <Module>
    {Module}_area"/>
            <constructor-arg name="targetCollectionName" value="(search)"/>
            <constructor-arg>
                <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.search.
    <Basic Module>SearchFilterCreator
    {Basic Module}SearchFilterCreator"/>
            </constructor-arg>
            <constructor-arg>
                <bean class="ru.intertrust.cmj.af.search.dp.docinfo.CustomModuleInfoExtractor" c:messageSource-ref="cmj_af_search_messageSource" c:ident="
    <Module>
    {Module}"/>
            </constructor-arg>
        </bean>

    Определение объекта

    Блок кода
    languagexml
    titleПодключение объекта
    linenumberstrue
    collapsetrue
    <!-- Формирует список областей поиска путём вызова дочерних билдеров.  Если дочерний билдер является тоже ScopeTreeBuilder, 
    то созданный им список областей делается дочерним к последней созданной области. Если список сделать дочерним невозможно, 
    то список просто добавляется к общему списку областей первого уровня. -->    
    	<bean id="rootScopeBuilder" class="ru.intertrust.cmj.af.search.ScopeTreeBuilder">
            <property name="childs">
                <list>
    		  		<bean class="ru.intertrust.cmj.af.search.dp.CmDocTypesScopeBuilder">
                        <constructor-arg index="0" value="
    <module>
    {Module}"/>
                        <constructor-arg index="1" value="
    <Module>
    {Module}"/>
                        <constructor-arg index="2">
                            <list>
                                <ref bean="subject"/>
                            </list>
                        </constructor-arg>
                        <constructor-arg index="3">
                            <set>
                                <ref bean="
    rkkSuperBundle<Module>
    rkkSuperBundle{Module}"/>
                            </set>
                        </constructor-arg>
                        <constructor-arg index="4">
                            <list>
                                <ref bean="
    <module>Searcher
    {Module}Searcher"/>
                            </list>
                        </constructor-arg>
                        <constructor-arg index="5">
                            <ref bean="cmSearchScopeCompositExBuilder"/>
                        </constructor-arg>
                    </bean>
    			</list>
    		</property>
    	</bean>

    Создание области поиска

    Блок кода
    languagexml
    titleИндексация полей объекта
    linenumberstrue
    collapsetrue
    <search-area name="
    <Module>
    {Module}_area">
    	<target-domain-object type="F_DP_OutputRkk"> 
    
     		<linked-domain-object type="Tn_Field_Datetime" nested="true">
                <indexed-field name="tDate" solr-prefix="cm_dt">
                    <script>if (ctx.get('cmjfield').equals('DateControl')){ ctx.get('value'); }</script>
                </indexed-field>
    		</linked-domain-object>
        
            <linked-domain-object type="F_DP_Rkk_SigningInfo">
                <indexed-field name="tVCard" search-by="substring" language="">
                    <doel>signer.orig_shortname</doel>
                </indexed-field>
                <parent-link>
                    <doel>Owner</doel>
                </parent-link>
            </linked-domain-object>
    	</target-domain-object>
    </search-area>

    Настройка соответствия параметров поиска и области поиска 

    Блок кода
    languagexml
    titleКонфигурация поиска
    linenumberstrue
    collapsetrue
    <bean id="
    dominoRequestConfigAttorney
    dominoRequestConfig{Module}" class="ru.intertrust.cmj.af.search.dp.request.DominoRequestConfig">
            <!-- Отображение ID параметров запроса на поля notes документа -->
            <property name="nsFieldsByParamByBundleID">
                <map merge="true">
                    <entry key="rkk#testDate" value="tDate"/>
                    <entry key="rkk#testVCard" value="tVCard"/>
                </map>
            </property>
            <!-- Отображение ID бандла на имя формы notes документа -->
            <property name="formsByBundleID">
                <map merge="true">
                    <entry key="rkk" value="
    <Basic
    {Basic 
    Object>
    Object}"/>
                </map>
            </property>
    </bean>

    Подключение поиска к кастомной коллекции

    Блок кода
    languagexml
    titleБин коллекции
    linenumberstrue
    collapsetrue
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd" default-lazy-init="true">
        <bean id="
    Attorney
    {Module}_(
    projects_by_registration_place
    {Collection})Metadata"
              class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:caseSensitiveFieldNames="true" p:searchArea=
    "<Module>
    "{Module}_area">
            <constructor-arg>
                <list value-type="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field">
                    <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="self">
                        <property name="virtualField">
                            <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.BuildVirtualField">
                                <property name="realFields">
                                    <list>
                                        <value>self_1</value>
                                        <value>Module</value>
                                        <value>self_2</value>
                                        <value>ID</value>
                                        <value>created_date</value>
                                        <value>self_3</value>
                                    </list>
                                </property>
                                <property name="pattern" value="<id>([0-9]{16}):([0-9A-F]{32})</>" />
                                <property name="separator" value=""/>
                                <property name="emptySeparator" value="true"/>
                            </bean>
                        </property>
                    </bean>
                </list>
            </constructor-arg>
        </bean>
    </beans>

    Запуск реиндексации

    1. Открыть НБР-аминку
    2. Перейти в раздел Структура Системы\Инструменты\Плагины
    3. Ввести название плагина ru.intertrust.cm_sochi.plugins.SolrReindexingPlugin
    4. Нажать "Применить"
    5. Выделить найденный плагин
    6. Нажать кнопку Play
    7. Ввести SQL-запрос. SQL-запрос нужно делать по таблицам, которые определены в области поиска тегах target-domain-object и linked-domain-object.

    Image Modified

    Создать область поиска

    1. Открыть НБР-аминку
    2. Перейти в раздел  Структура системы\Каталог\Области поиска
    3. Нажать на кнопку "Создать"
    4. Заполнить название области поиска
    5. В качестве приложения указать Портал
    6. В поле "Область" указать приложение, по которому будет производиться поиск
    7. Сохранить

    Image ModifiedImage Modified

    Подключить область поиска к портальному профилю

    1. Открыть НБР-аминку
    2. Перейти в раздел  Организация\Профили\Профили иерархии
    3. Выбрать портальный профиль
    4. Нажать на кнопку "Редактировать"
    5. Перейти в раздел "Добавленные области поиска"
    6. Выбрать область поиска
    7. Сохранить

    Image Modified

    панель
    title<Название видео>

    Примечание
    iconfalse
    titleЛегенда
    • {Project} - название проекта
    • {Module} - название модуля
    • {Collection} - название коллекции
    • {Basic Module} - базовый модуль
    • {Object} - название объекта
    • {Basic Object} - базовый объект