Usługi zarządzania polami indeksu - CaseIndexerFieldsManager
https://<nazwa_serwera_hgdb>[:port]/mercury-ws-app/restServices/CaseIndexerFieldsManagerRest.wadl
Przykład: https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseIndexerFieldsManagerRest.wadl.
Usługa utworzona w celu wsparcia mechanizmów budowania zapytań. Zawiera on szereg metod pozwalających na pobieranie informacji o indeksowanych polach oraz ich statystykach. Poniżej znajduje się lista dostępnych metod wraz z ich opisami w podziale na kategorie funkcjonalne:
- Pobieranie danych o typach pól
Metoda(Metoda HTTP) | Opis | |
---|---|---|
✅️ | getSearchTypes(POST) | Pobranie typów wyszukiwania w indeksie Lucene związanych z definicją pola. |
✅️ | getCategories(POST) | Pobranie kategorii pól. Kategoria pola to opis pochodzenia pól. Jeżeli przejrzymy artykuł Indeks Lucene, to dowiemy się, że pola pochodzą z różnych struktur przechowywania obiektów spraw. |
- Pobieranie danych o polach w podziale na typy wyszukiwania
Metoda(Metoda HTTP) | Opis | |
---|---|---|
✅️ | getFieldsBySerachType(POST) | pobranie listy pól dla konkretnego typu pola wyszukiwania. |
- Pobieranie danych o polach w podziale na kategorie pól
Metoda(Metoda HTTP) | Opis | |
---|---|---|
✅️ | getFields(POST) | pobranie listy wszystkich pól indeksu w podziale na ich kategorie. |
✅️ | getFieldsByCategory(POST) | pobranie listy pól dla konkretnej kategorii. |
✅️ | getFieldsByTypeCodes(POST) | pobranie listy pól dla definicji/typu sprawy o podanym kodzie. |
✅️ | getFieldsByTypeCodesAndCategory(POST) | pobranie listy pól dla definicji/typu sprawy o podanym kodzie oraz dla danej kategorii. |
✅️ | getFieldsByTypeIds(POST) | pobranie listy pól dla definicji/typu sprawy o podanym kodzie. |
✅️ | getFieldsByTypeIdsAndCategory(POST) | pobranie listy pól dla definicji/typu sprawy o podanym identyfikatorze wersji typu oraz dla danej kategorii. |
- Pobieranie danych o polach dla pól złożonych
Metoda(Metoda HTTP) | Opis | |
---|---|---|
✅️ | getFieldsBySubFieldName(POST) | pobranie listy pól dla pola sprawy nadrzędnej, którego definicją jest typ innej sprawy (podrzędnej). |
✅️ | getFieldsBySubFieldNameAndTypeCode(POST) | pobranie listy pól dla pola sprawy nadrzędnej, którego definicją jest typ innej sprawy (podrzędnej) dla danego kodu typu spraw. |
- Pobieranie statystyk pól
Metoda(Metoda HTTP) | Opis | |
---|---|---|
✅️ | getFieldsStatisticsByFieldName(POST) | pobieranie statystyk pola o podanej nazwie. Opcjonalnie można podać wartość pola. |
Pobieranie danych o typach pól
Można wykorzystać do pobrania danych, które później wykorzystamy do budowania kryteriów w usługach pobierania danych o polach.
Usługi zwracają w odpowiedzi proste listy z nazwami typów wyszukiwania albo kategorii (struktura odpowiedzi):
Parametr | Opis | Przykład wartości |
---|---|---|
errorCode | Kod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"? | null |
errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . | null |
bag | Lista wartości typu łańcucha znakowego - nazwy. | [] |
getSearchTypes
Pobranie listy nazw typów pól indeksu Lucene. Typy pól opisane zostały w artykule opisującym Indeks Lucene.
Ogólnie rzecz biorąc lista jest stała, wynik zapytania jest stały dla danej wersji implementacji systemu Mercury DB (HgDB) 3.0, zatem można by było się pokusić by w naszych rozwiązaniach listę zdefiniować na stałe, zamiast zadawać zapytanie.
Metoda ma tylko jeden argumet wejściowy:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
Przykład żądania metody w postaci JSON dla usługi REST.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
}
}
{
"errorCode": null,
"errorMessage": null,
"bag": [
"LongField",
"StringField",
"TextField",
"SubQuery",
"IntField",
"DateField",
"CompositeIdField",
"FloatField",
"DoubleField"
]
}
getCategories
Pobranie listy kategorii pól w indeksie Lucene związanych z definicją pola (zobacz Pola stałe/predefiniowane spraw). Przypomnijmy, że kategorie pól odpowiadają nazwom encji, z których pochodzą pola predefiniowane.
Ogólnie rzecz biorąc lista kategorii pól predefiniowanych jest stała, wynik zapytania jest stały dla danej wersji implementacji systemu Mercury DB (HgDB) 3.0, zatem można by było się pokusić by w naszych rozwiązaniach listę zdefiniować na stałe, zamiast zadawać zapytanie.
Metoda ma tylko jeden argument wejściowy:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
Przykład żądania metody w postaci JSON dla usługi REST.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
}
}
{
"errorCode": null,
"errorMessage": null,
"bag": [
"Comment",
"TypeCode",
"QuickTask",
"TypeKind",
"TypeCase",
"GroupCase",
"Source",
"Case",
"CaseDocument",
"KtmNumber",
"Participant",
"InitStatus"
]
}
Pobieranie danych o polach w podziale na typy
Załóżmy, że budujemy kreator zapytań. Wszystkie usługi wykorzystać możemy do mechanizmów podpowiadania jakiej nazwy pola użyć w konstruowanym zapytaniu.
Za pomocą metody getSearchTypes(POST) pobieramy listę typów wyszukiwania, a następnie możemy wykorzystać poniższe metody do pobrania danych pól indeksu Lucene dla danego typu wyszukiwania.
getFieldsBySerachType
Pobranie listy pól indeksu Lucene dla danego typu wyszukiwania. Typy wyszukiwania opisane zostały w artykule Indeks Lucene.
Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
searchType | String | Tak | Nazwa typu pola, dla którego lista pól ma zostać zaprezentowana. Zobacz opis typów pól Indeks Lucene. | "DateField" |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST. Pobieranie listy pól typu DateField
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"searchType": "DateField"
}
Parametry odpowiedzi metod pobierania danych o polach w podziale na typy
W odpowiedzi otrzymamy obiekt o następującej strukturze:
Parametr | Opis | Przykład wartości |
---|---|---|
errorCode | Kod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"? | null |
errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"? | null |
dto | Obiekt IndexFieldSearchType z listą pól przywiązanych do danego typu wyszukiwania. | { "searchType": "DateField", "fields": [...] } |
IndexFieldSearchType
Warstwy, w których użyty | Business |
Rodzaj | Obiekt biznesowy |
Interfejs Java | Serializable, IFieldCollector |
Implementacja Java | pro.ibpm.mercury.lucene.indexers.api.IndexFieldSearchType |
Implementacja DTO | pro.ibpm.mercury.lucene.indexers.api.IndexFieldSearchType |
Definicja XML | hgdb-lucene-indexers-3.0.xsd |
Wynik wyszukiwania. Obiekt reprezentujący kategorię wraz z jej listą pól.
Pole XML | Pole JSON | Opis | Typ | Przykład wartości |
---|---|---|---|---|
searchType | searchType | Typ wyszukiwania, dla którego zwracane są pola. | String | DateField |
field | fields | Lista wartości typu IndexField reprezentujących dane opisujące pola indeksu Lucene. | List<IndexField> | [{"name": "mrc_createDate", "type": "DateField", "complexity": "SIMPLE", "category": "Case", "searchType": "DateField"}, {"name": "mrc_updateDate", "type": "DateField", "complexity": "SIMPLE", "category": "Case", "searchType": "DateField"}] |
IndexField
Warstwy, w których użyty | Business |
Rodzaj | Obiekt biznesowy |
Interfejs Java | Serializable |
Implementacja Java | pro.ibpm.mercury.lucene.indexers.api.IndexField |
Implementacja DTO | pro.ibpm.mercury.lucene.indexers.api.IndexField |
Definicja XML | hgdb-lucene-indexers-3.0.xsd |
Element wyniku wyszukiwania. Jego zadaniem jest przesłanie minimalnej i jednocześnie wystarczająco dużej ilości danych jednoznacznie opisujących pole indeksu Lucene.
Pole XML | Pole JSON | Opis | Typ | Przykład wartości |
---|---|---|---|---|
fieldName | fieldName | Nazwa pola. | String | mrc_createDate |
- | name | Nazwa będąca podstawą utworzenia nazwy pola indeksu Lucene. Pole nie występuje w usługach SOAP. | String | mrc_createDate |
searchType | searchType | Typ pola. Zobacz opis typów pól Indeks Lucene. | String | DateField |
alternateSearchTypes | alternateSearchTypes | Alternatywne typy wyszukiwania, dla których pole może być użyte. | List<String> | ["DateField", "StringField"] |
store | store | Czy pole jest przechowywane w indeksie. Wartość NO oznacza, że pole nie jest przechowywane w indeksie, a jego wartość jest obliczana na podstawie innych pól. | String | NO |
- | paramName | Nazwa parametru wykorzystywana do wyszukiwania w relacyjnej bazie danych. Może być puste, jeżeli pole nie jest parametrem sprawy - pole, na podstawie którego znajdziemy bezpośrednie powiązanie z podstawowymi informacjami definicji parametru. Dodatkowo pole jest wykorzystane do weryfikacji uprawnień. Pole nie występuje w usługach SOAP. | String | null |
- | entityFieldName | Nazwa pola w encji, jeżeli pole jest mapowane na pole encji. Pole nie występuje w usługach SOAP. | String | null |
category | category | Kategoria pola, odpowiadająca nazwie encji, z której pochodzi pole. Zobacz opis kategorii pól Indeks Lucene. | String | Case |
recomendedLabel | recomendedLabel | Zalecana etykieta pola, jeżeli jest dostępna. | String | null |
sorted | sorted | Czy pole jest sortowane? | Boolean | true albo false |
complexity | complexity | Złożoność pola. Może przyjmować wartości SIMPLE (pole proste) lub SUBCASE (pole złożone, reprezentujące sprawę podrzędną). | String | SIMPLE |
{
"fieldName": "mrc_createDate",
"name": "mrc_createDate",
"searchType": "DateField",
"alternateSearchTypes": ["DateField", "StringField"],
"store": "NO",
"paramName": null,
"entityFieldName": null,
"category": "Case",
"recomendedLabel": null,
"sorted": false,
"complexity": "SIMPLE"
}
Przykład odpowiedzi metod metod pobierania danych o polach w podziale na typy
Przykład odpowiedzi metody getFieldsBySerachType(POST) na żądanie pobierania pól typu SubQuery
- Przykład odpowiedzi usługi REST
- Przykład odpowiedzi usługi SOAP
{
"errorCode": null,
"errorMessage": null,
"dto": {
"searchType": "SubQuery",
"fields": [
{
"fieldName": "acceptance",
"name": "acceptance",
"searchType": "SubQuery",
"alternateSearchTypes": null,
"store": "NO",
"paramName": null,
"entityFieldName": null,
"category": "Case",
"recomendedLabel": null,
"sorted": false,
"complexity": "SUBCASE"
},
{
"fieldName": "acceptor",
"name": "acceptor",
"searchType": "SubQuery",
"alternateSearchTypes": null,
"store": "NO",
"paramName": null,
"entityFieldName": null,
"category": "Case",
"recomendedLabel": null,
"sorted": false,
"complexity": "SUBCASE"
}
]
}
}
<return>
<errorCode/>
<errorMessage/>
<dto xmlns="http://index.lucene.hgdb.io/searchFields"
xsi:schemaLocation="http://index.lucene.hgdb.io/searchFields https://hgdb.org/xsd/lucene/hgdb-lucene-indexers-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<searchType>SubQuery</searchType>
<field>
<fieldName>acceptance</fieldName>
<searchType>SubQuery</searchType>
<store>NO</store>
<category>Case</category>
<sorted>false</sorted>
<complexity>SUBCASE</complexity>
</field>
<field>
<fieldName>acceptor</fieldName>
<searchType>SubQuery</searchType>
<store>NO</store>
<category>Case</category>
<sorted>false</sorted>
<complexity>SUBCASE</complexity>
</field>
</dto>
</return>
Pobieranie danych o polach w podziale na kategorie pól
Załóżmy, że budujemy kreator zapytań. Wszystkie usługi wykorzystać możemy do mechanizmów podpowiadania jakiej nazwy pola użyć w konstruowanym zapytaniu.
getFields
Pobranie listy wszystkich pól indeksu Lucene w podziale na ich kategorie. Kategoria pola to opis pochodzenia pól. Jeżeli przejrzymy artykuł Indeks Lucene, to dowiemy się, że pola pochodzą z różnych struktur przechowywania obiektów spraw. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla złożoności pola SUBCASE
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"complexity": "SUBCASE"
}
getFieldsByCategory
Pobranie listy pól dla konkretnej kategorii. Kategoria pola to opis pochodzenia pól. Jeżeli przejrzymy artykuł Indeks Lucene, to dowiemy się, że pola pochodzą z różnych struktur przechowywania obiektów spraw. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
category | String | Tak | Kategoria pola, dla której lista pól ma zostać zaprezentowana. Zobacz opis kategorii pól Indeks Lucene. | "Case" |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla kategorii Case
o złożoności SUBCASE
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"category":"Case",
"complexity": "SUBCASE"
}
getFieldsByTypeCodes
Pobranie listy pól zdefiniowanych w indeksie Lucene przypisanych do zdefiniowanego typu obiektu sprawy, na podstawie jego kodu. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
typeCodes | String[] | Tak | Lista kodów typów spraw, dla których lista pól ma zostać zaprezentowana. Zobacz opis encji kodów typów spraw TypeCode. | ["ElixAddress", "FsmTimeSlot"] |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla kodów typów spraw ElixAddress
i FsmTimeSlot
o złożoności SIMPLE
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"typeCodes":["ElixAddress", "FsmTimeSlot"],
"complexity":"SIMPLE"
}
getFieldsByTypeCodesAndCategory
Pobranie listy pól zdefiniowanych w indeksie Lucene przypisanych do zdefiniowanego typu obiektu sprawy, na podstawie jego kodu, wraz dodatkowym kryterium wskazującym na kategorię pola. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
typeCodes | String[] | Tak | Lista kodów typów spraw, dla których lista pól ma zostać zaprezentowana. Zobacz opis encji kodów typów spraw TypeCode. | ["ElixAddress", "FsmTimeSlot"] |
category | String | Tak | Kategoria pola, dla której lista pól ma zostać zaprezentowana. Zobacz opis kategorii pól Indeks Lucene. | "Case" |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla kodów typów spraw ElixAddress
i FsmTimeSlot
o złożoności SIMPLE
i kategorii Case
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"typeCodes":["ElixAddress", "FsmTimeSlot"],
"category":"Case",
"complexity":"SIMPLE"
}
getFieldsByTypeIds
Pobranie listy pól zdefiniowanych w indeksie Lucene przypisanych do zdefiniowanego typu obiektu sprawy, na podstawie jego identyfikatora. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
typeIds | Long[] | Tak | Lista identyfikatorów typów spraw, dla których lista pól ma zostać zaprezentowana. Zobacz opis encji typów spraw TypeCase. | [123344, 123345] |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla identyfikatorów typów spraw 123344
i 123345
o złożoności SIMPLE
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"typeIds":[123344, 123345],
"complexity":"SIMPLE"
}
getFieldsByTypeIdsAndCategory
Pobranie listy pól zdefiniowanych w indeksie Lucene przypisanych do zdefiniowanego typu obiektu sprawy, na podstawie jego identyfikatora, wraz dodatkowym kryterium wskazującym na kategorię pola. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
typeIds | Long[] | Tak | Lista identyfikatorów typów spraw, dla których lista pól ma zostać zaprezentowana. Zobacz opis encji typów spraw TypeCase. | [123344, 123345] |
category | String | Tak | Kategoria pola, dla której lista pól ma zostać zaprezentowana. Zobacz opis kategorii pól Indeks Lucene. | "Case" |
complexity | String | Nie | Filtrowanie listy pól po parametrze complexity 1 reprezentującym złożoność pola. Argument może przyjmować jedną z następujących wartości: SIMPLE , SUBCASE , ALL . Jeżeli nie prześlemy żadnej wartości, domyślnie przyjmowana jest wartość SIMPLE . | "SIMPLE" |
Przykład żądania metody w postaci JSON dla usługi REST dla identyfikatorów typów spraw 123344
i 123345
o złożoności SIMPLE
i kategorii Case
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"typeIds":[123344, 123345],
"category":"Case",
"complexity":"SIMPLE"
}
Parametry odpowiedzi metod pobierania danych o polach w podziale na kategorie pól
W odpowiedzi otrzymamy obiekt o następującej strukturze:
Parametr | Opis | Przykład wartości |
---|---|---|
errorCode | Kod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"? | null |
errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"? | null |
map/dto | Mapa, której kluczem jest nazwa reprezentująca kategorię pola. Wartość mapy reprezentuje lista obiekt IndexFieldCategory z listą pól przywiązanych do danej kategorii. Mapa może być pusta w przypadku gdy w systemie nie ma zdefiniowanego typu sprawy o podanym kodzie typu. | { "category": "Case", "fields": [...] } |
IndexFieldCategory
Warstwy, w których użyty | Business |
Rodzaj | Obiekt biznesowy |
Interfejs Java | Serializable, IFieldCollector |
Implementacja Java | pro.ibpm.mercury.lucene.indexers.api.IndexFieldCategory |
Implementacja DTO | pro.ibpm.mercury.lucene.indexers.api.IndexFieldCategory |
Definicja XML | hgdb-lucene-indexers-3.0.xsd |
Obiekt reprezentujący kategorię wraz z jej listą pól.
Pole XML | Pole JSON | Opis | Typ | Przykład wartości |
---|---|---|---|---|
category | category | Kategoria pola, odpowiadająca nazwie encji, z której pochodzi pole. Zobacz opis kategorii pól Indeks Lucene. | String | Case |
field | fields | Lista wartości typu IndexField reprezentujących dane opisujące pola indeksu Lucene. | List<IndexField> | [{"name": "mrc_createDate", "type": "DateField", "complexity": "SIMPLE", "category": "Case", "searchType": "DateField"}, {"name": "mrc_updateDate", "type": "DateField", "complexity": "SIMPLE", "category": "Case", "searchType": "DateField"}] |
{
"category": "Case",
"fields": [
{
"fieldName": "mrc_createDate",
"name": "mrc_createDate",
"searchType": "DateField",
"alternateSearchTypes": ["DateField", "StringField"],
"store": "NO",
"paramName": null,
"entityFieldName": null,
"recomendedLabel": null,
"sorted": false,
"complexity": "SIMPLE"
},
{
"fieldName": "mrc_updateDate",
"name": "mrc_updateDate",
"searchType": "DateField",
"alternateSearchTypes": ["DateField", "StringField"],
"store": null,
"paramName": null,
"entityFieldName": null,
"recomendedLabel": null,
"sorted": false,
"complexity": null
}
]
}
Przykład odpowiedzi metod metod pobierania danych o polach w podziale na kategorie pól
Przykład odpowiedzi metody getFieldsByCategory(POST) na żądanie pobierania pól dla kategorii Case
- Przykład odpowiedzi usługi REST
- Przykład odpowiedzi usługi SOAP
{
"errorCode": null,
"errorMessage": null,
"map": {
"Case": {
"category": "Case",
"fields": [
{
"fieldName": "mrc_createDate",
"name": "mrc_createDate",
"searchType": "DateField",
"alternateSearchTypes": ["DateField", "StringField"],
"store": "NO",
"paramName": null,
"entityFieldName": null,
"recomendedLabel": null,
"sorted": true,
"complexity": "SIMPLE"
},
{
"fieldName": "mrc_updateDate",
"name": "mrc_updateDate",
"searchType": "DateField",
"alternateSearchTypes": ["DateField", "StringField"],
"store": null,
"paramName": null,
"entityFieldName": null,
"recomendedLabel": null,
"sorted": true,
"complexity": "SIMPLE"
}
]
}
}
}
<return>
<errorCode/>
<errorMessage/>
<map xmlns="http://index.lucene.hgdb.io/searchFields"
xsi:schemaLocation="http://index.lucene.hgdb.io/searchFields https://hgdb.org/xsd/lucene/hgdb-lucene-indexers-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<entry>
<key>Case</key>
<value>
<category>Case</category>
<field>
<fieldName>mrc_createDate</fieldName>
<searchType>DateField</searchType>
<store>NO</store>
<recomendedLabel/>
<sorted>true</sorted>
<complexity>SIMPLE</complexity>
</field>
<field>
<fieldName>mrc_updateDate</fieldName>
<searchType>DateField</searchType>
<store/>
<recomendedLabel/>
<sorted>true</sorted>
<complexity>SIMPLE</complexity>
</field>
</value>
</entry>
</map>
</return>
Pobieranie danych o polach złożonych
Załóżmy, że budujemy kreator zapytań. Wszystkie usługi wykorzystać możemy do mechanizmów podpowiadania jakiej nazwy pola użyć w konstruowanym zapytaniu.
Pobieranie danych o polach dla pól złożonych wskazujących na sprawy podrzędne.
getFieldsBySubFieldName
Metoda pobierająca definicje pól indeksu Lucene dla pól złożonych, których reprezentacja zdefiniowana jako sprawa zależna. Listę pól złożonych można pobrać za pomocą metody getFieldsByCategory(POST) ustawiając argumenty żądania "category": "Case"
oraz "complexity": "SUBCASE"
. Parametry wejściowe żądania są następujące:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
fieldName | String | Tak | Nazwa pola, dla którego lista pól ma zostać zaprezentowana. Pole musi być polem złożonym, reprezentującym sprawę podrzędną. | "address" |
Przykład żądania metody w postaci JSON dla usługi REST. Pobieranie danych o pólu złożonym o nazwie address
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"fieldName":"address"
}
getFieldsBySubFieldNameAndTypeCode
Metoda pobierająca definicje pól indeksu Lucene dla pól złożonych, których reprezentacja zdefiniowana jako sprawa zależna. Wynik zawężamy do typu o podanym kodzie, w których to pole występuje. Listę pól złożonych można pobrać za pomocą metody getFieldsByTypeCodesAndCategory(POST) ustawiając odpowiednio argumenty żądania "typeCodes": ["kod_typu"], "category": "Case"
oraz "complexity": "SUBCASE"
(gdzie kod_typu
, to kod typu obiektu spraw, który nas interesuje).
W systemie może być wiele definicji pól o tej samej nazwie reprezentowanych przez inny typ złożony. Przykład: W definicji typu sprawy o kodzie Employee
mo że być pole address, którego definicja zawiera pola: street
, postCode
, city
. W innej definicji typu sprawy, o innym kodzie np. Company
, pole o nazwie address zawiera pola: mainStreet
, postCode
, mainCity
, country
. Warto zatem używać tej metody, by nie popełnić błędu podczas budowania zapytania, którego celem będzie znalezienie sprawy typu Employee
, a w kryterium wyszukiwania użyjemy pola address.mainStreet, które odpowiada typowi Company
.
Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
fieldName | String | Tak | Nazwa pola, dla którego lista pól ma zostać zaprezentowana. Pole musi być polem złożonym, reprezentującym sprawę podrzędną. | "address" |
typeCode | String | Tak | Kod typu sprawy, dla którego lista pól ma zostać zaprezentowana. Pole musi być polem złożonym, reprezentującym sprawę podrzędną. | "Employee" |
Przykład żądania metody w postaci JSON dla usługi REST. Pobieranie danych o polu złożonym o nazwie address
dla typu sprawy o kodzie Employee
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"fieldName":"address",
"typeCode":"Employee"
}
Parametry odpowiedzi metod pobierania danych o polach złożonych
W odpowiedzi otrzymamy obiekt o następującej strukturze:
Parametr | Opis | Przykład wartości |
---|---|---|
errorCode | Kod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"? | null |
errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"? | null |
map | Mapa, której kluczem jest nazwa reprezentująca kategorię pola. Wartość mapy reprezentuje lista obiekt IndexFieldCategory z listą pól przywiązanych do danej kategorii. Mapa może być pusta w przypadku gdy w systemie nie ma zdefiniowanego typu sprawy o podanym kodzie typu. | { "category": "Case", "fields": [...] } |
Przykład odpowiedzi metod metod pobierania danych o polach złożonych
Przykład odpowiedzi metody getFieldsBySubFieldNameAndTypeCode(POST) na żądanie pobierania pól złożonych dla pola address
i typu sprawy o kodzie Employee
Strona jest w budowie i nie zawiera jeszcze wszystkich informacji. Proszę o cierpliwość. Obecnie zgłoszono problem #180
Problem z niektórymi metodami w usłudze CaseIndexerFieldsManagerAction. Przykład zostanie uzupełniony po rozwiązaniu problemu.
- Przykład odpowiedzi usługi REST
- Przykład odpowiedzi usługi SOAP
Pobieranie statystyk pól
Statystyka pola może być przydatna podczas tworzenia mechanizmów optymalizacji zapytań, które wysyłane są do systemu.
getFieldsStatisticsByFieldName
Metoda pobiera statystykę dla danego pola i opcjonalnie dla jego wartości. Metoda ma następujące argument wejściowe:
Nazwa parametru | Typ | Wymagany? | Opis | Przykład wartości |
---|---|---|---|---|
context | Context | Tak | Kontekst żądania. Więcej na temat kontekstu znajdziesz w artykule Kontekst żądania usług SOAP/REST. | { "appName": "mercury-ws-app", "appVersion": "0.0.1", "userName": "ttesteusz", ... } |
fieldName | String | Tak | Nazwa pola, dla którego lista pól ma zostać zaprezentowana. | "address" |
fieldValue | String | Nie | Wartość pola (termin) - statystyka pola będzie zawężona do wartości jaka jest przechowywania w polu. Jeżeli nie podamy wartości użyta będzie domyślna wartość * , która reprezentuje dane mówiące o tym, że mają być wzięte wszystkie.⚠️ Statystyka wartości pola może być wyznaczana tylko dla pól nie numerycznych. Dla pól numerycznych (liczbowych) podana wartość zostanie zignorowana i zostanie podana ogólna statystyka pola. | "*" |
Przykład żądania metody w postaci JSON dla usługi REST. Pobieranie statystyk pola mrc_typeCodeName
.
{
"context": {
"appName": "mercury-ws-app",
"appVersion": "1.0",
"userName": "anonymous",
"comment": null,
"maxResults": 10000,
"queryTimeout": 2147483647,
"locale": "pl_PL",
"timeZone": "Europe/Warsaw",
"userFullName": null,
"eager4omdBuilder": "true",
"trustedData": false,
"ignoredCustomFields": null,
"currentRole": null,
"userRoles": null,
"sourceOfRequest": "USER_DEV.localhost",
"rootVersionContextID": null,
"rootTagName": null,
"directRequest": false,
"formats": {
"date.format.long": "dd-MM-yyyy HH:mm:ss XXX"
},
"ignoreAlternateFields": true,
"decodeResult": "DATE_AND_LOB",
"maxDepthResult": 3,
"decodeRequest": "DATE_AND_LOB",
"ignoreCaseHeaderInResponse": true,
"cacheUsage": "REFRESH",
"httpResponseCacheUsage": "NONE",
"defaultLuceneSortClause": null,
"viewDefinition": null
},
"fieldName": "mrc_typeCodeName",
"fieldValue": "geoaddressregister"
}
Parametry odpowiedzi metod pobierania statystyk pól
W odpowiedzi otrzymamy obiekt o następującej strukturze:
Pole XML | Pole JSON | Opis | Przykład wartości |
---|---|---|---|
errorCode | errorCode | Kod błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Informacje na temat danych zawartych w wartości tego parametru można uzyskać czytając artykuł Co oznacza wartość pola "errorCode"? | null |
errorMessage | errorMessage | Komunikat błędu. Gdy operacja zakończy się sukcesem, przyjmuje wartość null . Zobacz również artykuł Co oznacza wartość pola "errorCode"? | null |
item | bag | IndexFieldStatistics reprezentuje obiekt z danymi statystyk pola. | [{ "fieldName": "mrc_typeCodeName", "currentTerm": "geoaddressregister", "serachType": "StringField", "docCount": 1060843, "maxValue": "zpitriodatenegotiation", "minValue": "0", "sumDocFreq": 45402, "sumTotalDocFreq": -1}] |
IndexFieldStatistics
Warstwy, w których użyty | Business |
Rodzaj | Obiekt biznesowy |
Interfejs Java | Serializable |
Implementacja Java | pro.ibpm.mercury.lucene.indexers.api.IndexFieldStatistics |
Implementacja DTO | pro.ibpm.mercury.lucene.indexers.api.IndexFieldStatistics |
Definicja XML | hgdb-lucene-indexers-3.0.xsd |
Element wyniku wyszukiwania. Jego zadaniem jest przesłanie danych statystyk pola indeksu Lucene.
Pole XML | Pole JSON | Opis | Typ | Przykład wartości |
---|---|---|---|---|
fieldName | fieldName | Rzeczywista nazwa pola indeksu Lucene pod jaka jest przechowywana wartość. Nazwa ta nie jest widoczna dla API Mercury DB (HgDB) i nie może być wykorzystywana w do budowania zapytań. Nazwy te wykorzystywane są niejawnie przez zaimplementowany w HgDB parser zapytań oraz ich egzekutor. Nazwy te można wykorzystać w zewnętrznych narzędziach pozwalających na bezpośrednią analizę zawartości indeksu jak np. Luke. Nazwy te posiadają sufiksy w stosunku nazewnictwa pól wykorzystywanych w zapytaniach. Wszystko po to, by obsłużyć różne typy pól (alternatywne typy pól) o tych samych nazwach. Używane są następujące sufiksy:
| String | description |
currentTerm | currentTerm | Bieżący termin (wyszukiwana wartość), na podstawie którego wyznaczona została statystyka pola. Jeżeli pole nie przyjmie żadnej wartości, lub znak * , to statystyka będzie dotyczyć wszystkich wyrażeń zaindeksowanych w danym polu.⚠️ Pole nie przyjmuje żadnej wartości dla pól numerycznych, dla których wyznaczyć możemy tylko statystyki ogólne. | String | Przykład: słowo |
serachType | serachType | Typ wyszukiwania w indeksie Lucene. | String | Zobacz opis w Typy pól indeksu Lucene. |
docCount | docCount | Zwraca liczbę dokumentów, które mają co najmniej jedną wartość dla danego pola indeksu lub -1 , jeśli ta miara nie jest przechowywana przez index.Przykład dla pola dokumentu description w indeksie Lucene znajdują się następujące wpisy:
słowo wartość statystyki będzie to liczba dokumentów z danym, niepustym, polem description czyli 5.Dla wszystkich terminów będzie to również liczba 5. ⚠️ Zwróć uwagę, że statystyka niestety nie uwzględnia usuniętych dokumentów. | Long | 100 |
maxValue | maxValue | Maksymalna wartość pola, jaką przyjmuje. 🛈 Przypadek użycia: Można wykorzystać tę wartość do analizy czy warto wykonywać zapytanie. Skoro kryterium zapytania zadane przez użytkownika/klienta nie spełnia wartości maksymalnej pola, jest większe od danej wartości, to można zarzucić realizację wyszukiwania i zwrócić pusty wynik. | String | Pole przyjmuje postać String reprezentując wszystkie typy danych z numerycznymi włącznie. |
minValue | minValue | Minimalna wartość pola, jaką przyjmuje. 🛈 Przypadek użycia: Można wykorzystać tę wartość do analizy czy warto wykonywać zapytanie. Skoro kryterium zapytania zadane przez użytkownika/klienta nie spełnia wartości maksymalnej pola, jest większe od danej wartości, to można zarzucić realizację wyszukiwania i zwrócić pusty wynik. | String | Pole przyjmuje postać String reprezentując wszystkie typy danych z numerycznymi włącznie. |
sumDocFreq | sumDocFreq | Zwraca liczbę dokumentów zawierających bieżący termin (wyszukiwana wartość) dla tego pola lub -1 , jeśli ta miara nie jest przechowywana przez index.Przykład dla pola dokumentu description w indeksie Lucene znajdują się następujące wpisy:
słowo wartość statystyki będzie 2.Dla wszystkich terminów będzie to liczba dokumentów 5. ⚠️ Zwróć uwagę, że statystyka niestety nie uwzględnia usuniętych dokumentów. | Long | 100 |
sumTotalDocFreq | sumTotalDocFreq | Zwraca całkowitą liczbę wystąpień tego terminu (wyszukiwanej wartości) we wszystkich dokumentach (suma freq() dla każdego dokumentu zawierającego ten termin) dla tego pola lub -1 , jeśli ta miara nie jest przechowywana przez index.Przykład dla pola dokumentu description w indeksie Lucene znajdują się następujące wpisy:
słowo wartość statystyki będzie 4.Dla wszystkich terminów będzie to suma wszystkich wyrażeń o długości powyżej 2 znaków czyli 33. ⚠️ Zwróć uwagę, że statystyka niestety nie uwzględnia usuniętych dokumentów. | Long | 33 |
{
"fieldName": "advanceAmountSum_N",
"currentTerm": "*",
"serachType": null,
"docCount": 57,
"maxValue": "471819,45",
"minValue": "0",
"sumDocFreq": 57,
"sumTotalDocFreq": 57
}
Dla pól typu wyszukiwania numerycznego wartości pól maxValue
oraz minValue
w postaci łańcucha reprezentuje wartość liczbową. Pamiętaj, że formatem liczby możesz sterować odpowiednio definiując parametry obiektu context
w żądaniu (zobacz opis Kontekst żądania usług SOAP/REST).
Przykład odpowiedzi metod metod pobierania statystyk pól
Przykład odpowiedzi metody getFieldsStatisticsByFieldName(POST) na żądanie pobierania statystyk pola mrc_typeCodeName
.
- Przykład odpowiedzi usługi REST
- Przykład odpowiedzi usługi SOAP
{
"errorCode": null,
"errorMessage": null,
"bag": [{
"fieldName": "mrc_typeCodeName",
"currentTerm": "geoaddressregister",
"serachType": "StringField",
"docCount": 1054531,
"maxValue": "zpitriodatenegotiation",
"minValue": "bpmbpdinstance",
"sumDocFreq": 45402,
"sumTotalDocFreq": -1
}]
}
<return>
<errorCode/>
<errorMessage/>
<item xmlns="http://index.lucene.hgdb.io/statisticsFields"
xsi:schemaLocation="http://index.lucene.hgdb.io/statisticsFields https://hgdb.org/xsd/lucene/hgdb-lucene-indexers-3.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<fieldName>mrc_typeCodeName</fieldName>
<currentTerm>geoaddressregister</currentTerm>
<serachType>StringField</serachType>
<docCount>1054531</docCount>
<maxValue>zpitriodatenegotiation</maxValue>
<minValue>bpmbpdinstance</minValue>
<sumDocFreq>45402</sumDocFreq>
<sumTotalDocFreq>-1</sumTotalDocFreq>
</item>
</return>