Публикация и загрузка в Servigistics InService > Дополнительная информация > Настройка TAL > Добавление нового поля поиска
  
Добавление нового поля поиска
Servigistics InService имеет следующие два типа полей поиска:
поле термина;
поле полного текста.
Чтобы добавить новое поле поиска, выполните следующие шаги.
1. Если требуемое поле поиска не существует в файле Types/globalDefinitions.xml, определите новое поле поиска, добавив новую запись в раздел Search Attributes в файле globalDefinitions.xml.
Например:
<SearchField Label="Region" Name="REGION" Length="20" Type="Term"/>
<SearchField Label="Load Date" Name="PubDate" Type="Date"/>
<SearchField Name="FULLTEXT_PARTNAME">
Если требуется добавить поле поиска для даты, ее обязательный формат в репозитории имеет вид: YYYYMMDD, например 20150729. Обратите внимание, что если во входном документе используется другой формат даты, требуется XSL-код для преобразования входного формата в требуемый.
2. Если нужное поле поиска не существует в свойстве типа, добавьте новое определенное поле поиска в соответствующие типы.
Например, для следующих входных данных в XML-структуре
<Object>
<region>IN</region>
</Object>
Можно добавлять следующие поля поиска:
<SearchField Name="REGION">
<FieldMapping TemplateID="ResultField_TYPENAME_Attribute " XPath=" Object ">
<xsl:template xmlns:xsl="http://www.w3.org/1999/XSL/Transform" Type=" XPath">
<xsl:value-of select="region"/>
</xsl:template>
</FieldMapping>
</SearchField>
<SearchField Name="FULLTEXT_REGION ">
<FullTextMapping XPath="region"/>
</SearchField>
3. Если данные уже загружены, выполните переиндексацию данных для новых активов. В противном случае следуйте обычному процессу загрузки данных.
Глобальный поиск в интерфейсе Servigistics InService обычно возвращает результаты на основе поля поиска FULLTEXT, определенного для отдельных типов. Если требуется добавить дополнительные атрибуты в существующий глобальный поиск, необходимо включить XPATH для требуемого атрибута или элемент из источника XML как элемент FullTextMapping.
Предположим, например, что имеется следующий источник XML для бизнес-объекта Part.
<Part>
<partName>MY PART</partName>
<partNumber>PRT000012121</partNumber>
</Part>
<!--
As per following type definition of above source xml, you can only
search this Part through partName(that is MY PART) only. Not through
partNumber(PRT000012121)
-->
<SearchField Name="FULLTEXT_PARTNAME">
<FullTextMapping XPath="Part/partName"/>
</SearchField>
<!--
If you want to search based on partNumber then you must update the type
defintion for Part Object. And in type definition file, you must add xpath for
partNumber (Part/partNumber) in search field
mapping as defined below.
-->
<SearchField Name="FULLTEXT">
<FullTextMapping XPath="Part/partName"/>
<FullTextMapping XPath="Part/partNumber"/>
</SearchField>
Обратите внимание, что можно определить весь исходный XML как часть глобального поиска, передав корневой элемент (*/*) как XPATH для соответствующих критериев поиска полного текста. Например:
<SearchField Name="FULLTEXT">
<FullTextMapping XPath="*/*"/>
</SearchField>