Дерево страниц
Skip to end of metadata
Go to start of metadata

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

« Предыдущий Версия 5 Следующий »

Статус

В РАБОТЕ

Автор
Комментарий

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



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

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

Инструмент

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

Реализация

Дорожная карта:

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

Легенда: 

  • <Project> - название проекта
  • <Module> - название модуля
  • <Collection> - название коллекции



Параметр поиска
    <bean id="attorneyConfidant" class="ru.intertrust.cmj.af.search.dp.CmParameter"
          c:id="confidant" 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>
Конфигурация поиска
<bean id="dominoRequestConfigAttorney" class="ru.intertrust.cmj.af.search.dp.request.DominoRequestConfig">
        <!-- Отображение ID параметров запроса на поля notes документа -->
        <property name="nsFieldsByParamByBundleID">
            <map merge="true">
                <entry key="rkk#reqType" value="ReqType"/>
                <entry key="rkk#subject" value="Subject"/>
                <entry key="rkk#regFullNumber" value="RNumber_Full"/>
                <entry key="rkk#dateAttorney" value="dateAttorney"/>
                <entry key="rkk#Srok" value="Srok"/>
                <entry key="rkk#confidant" value="confidant"/>
                <entry key="rkk#authorizedPerson" value="Superior"/>
                <entry key="rkk#executor" value="From"/>
                <entry key="rkk#ReasonDeliv" value="ReasonDeliv"/>
                <entry key="rkk#ReasonCanc" value="ReasonCanc"/>
                <entry key="rkk#ReestrNum" value="ReestrNum"/>
            </map>
        </property>
        <property name="formulasByParamByBundleID">
            <map>
                <entry key="rkk#searchInContent"
                       value="[Body]="%par%" OR [Appendix]="%par%" OR [$File]="%par%""/>
            </map>
        </property>
        <!-- Отображение ID бандла на имя формы notes документа -->
        <property name="formsByBundleID">
            <map merge="true">
                <entry key="rkk" value="Output"/>
            </map>
        </property>
</bean>
Подключение поиска
    <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="attorney"/>
                    <constructor-arg index="1" value="Attorney"/>
                    <constructor-arg index="2">
                        <list>
                            <ref bean="subject"/>
                        </list>
                    </constructor-arg>
                    <constructor-arg index="3">
                        <set>
                            <ref bean="AdvancedAttorneyBundle"/>
                            <ref bean="mainDocBundleForCustom"/>
                        </set>
                    </constructor-arg>
                    <constructor-arg index="4">
                        <list>
                            <ref bean="attorneySearcher"/>
                        </list>
                    </constructor-arg>
                    <constructor-arg index="5">
                        <ref bean="cmSearchScopeCompositExBuilder"/>
                    </constructor-arg>
                </bean>
			</list>
		</property>
	</bean>
Подключение поиска
<bean id="attorneySearcher" class="ru.intertrust.cm_sochi.srv.connector.sochi.search.SochiSolrSearcher">
        <constructor-arg name="cmAppSystemId" value="Attorney"/>
        <constructor-arg name="isNamed" value="true"/>
        <constructor-arg name="searchArea" value="Attorney"/>
        <constructor-arg name="targetCollectionName" value="(search)"/>
        <constructor-arg>
            <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.search.OutputDocsSearchFilterCreator"/>
        </constructor-arg>
        <constructor-arg>
            <bean class="ru.intertrust.cmj.af.search.dp.docinfo.CustomModuleInfoExtractor" c:messageSource-ref="cmj_af_search_messageSource" c:ident="Attorney"/>
        </constructor-arg>
    </bean>
Пример. Область поиска
<search-area name="Attorney">
    <target-domain-object type="F_DP_OutputRkk">
        <linked-domain-object type="F_DP_Rkk_SigningInfo">
            <indexed-field name="Superior" 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>
Бин коллекции
<?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_(projects_by_registration_place)Metadata"
          class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.CollectionMetadataNew" p:caseSensitiveFieldNames="true" p:searchArea="Attorney_uicoll">
        <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>
                <bean class="ru.intertrust.cm_sochi.srv.connector.sochi.collections.Field" p:name="regPlace" p:sortOrder="ASCENDING" p:categorized="true" p:sortPriority="0" />
            </list>
        </constructor-arg>
    </bean>
</beans>
  • Нет меток