Podstawą wyszukiwania w systemie Mercury DB jest Indeks Lucene. W niniejszy artykule przedstawione zostaną zasady tworzenia nazewnictwa pól, które są podstawą do realizacji zapytań wyszukiwania. Zaprezentowany zostanie również podział pól ze względu na ich rodzaj, kategorię (podział ze względu na pochodzenie pola) oraz sposób wyszukiwania (podział ze względu na typ pola).

Ze względu na rozwój systemu i coraz to nowe wymagania, nazewnictwo pól indeksu Lucene zostało opracowane w dwóch modelach: Model 2.0 oraz Model 3.0. Wybór modelu nazewnictwa pól definiuje się w parametrach konfiguracyjnych systemu. O tym jaki model nazewnictwa jest wykorzystywany definiuje parametr mercury.lucene.model.version .

Na tej stronie:

Struktura dokumentu indeksu

Dokument indeksu Lucene w systemie Mercury DB oparty jest o dane składowane w relacyjnej bazie danych.

Model nazewnictwa pól definiuje się w trakcie procesu instalacji i jego zmiana wymaga całkowitej przebudowy indeksu Lucene oraz wprowadzenia odpowiednich zmian w aplikacjach realizujących zadania wyszukiwania danych. 

Poniższy diagram prezentuje poszczególne składowe dokumentu.


Przechowywanie dokumentu w indeksie

Architektura przechowywanych danych w relacyjnej bazie danych sprawia, że jednemu dokumentowi indeksu Lucene odpowiada jeden wpis (wiersz) w tabeli reprezentującej encję Case. Charakter obiektowości przechowywanych danych wprowadza konieczność budowania powiazań pomiędzy zaindeksowanymi dokumentami. Aby dokładniej to wyjaśnić przeanalizujmy poniższy przypadek obiektu sprawy złożonej:

{
	"mrcCaseHeader": {
		"typeCode": "EliClient",
		"dirty": false,
		"pkPropertyName": "clientID"
	},
	"clientID": "22377",
	"clientName": "Dobry Klient",
	"clientLogo": "n/a",
	"clientAddress": {
		"mrcCaseHeader": {
			"typeCode": "EliAddress",
			"dirty": false,
			"pkPropertyName": "correlationId"
		},
		"correlationId": "22377",
		"county": "pleszewski",
		"community": "Pleszew",
		"city": "Brzezie",
		"street": "ul. Zawidowicka",
		"buildingNumber": "5",
		"status": "W budowie",
		"isContract": "false",
		"coordinationMeetingPlanedDate": "17-10-2018",
		"orders": [],
		"source": null
	}
}

Mamy sprawę nadrzędną (EliClient, rodzic) oraz sprawę podrzędną (EliAddress, dziecko). Ich dane przechowywane są jako oddzielne wiersze w tabeli. Powiązanie, które pomiędzy nimi istnieje (pole clientAddress w sprawie nadrzędnej), w relacyjnej bazie zapisane jest jako wiersz encji Case2SubCase. Aby odzwierciedlić to powiązanie w zaindeksowanych dokumentach, silnik indeksowania HgDB dodaje odpowiednie pola zarówno do dokumentu sprawy nadrzędnej jak i podrzędnej.

Do dokumentu sprawy nadrzędnej dodane zostanie pole o nazwie utworzonej wg reguły: <nazwa_pola>_<nawa_pola_z_id_sprawy>, czyli w naszym przypadku, używając nazewnictwa modelu 3.0, clientAddress_mrc_Case_id z wartością odpowiadającą identyfikatorowi sprawy podrzędnej. To pozwoli silnikowi HgDB zrealizowanie odpowiedniego zapytania wiążącego, wyszukanie sprawy podrzędnej o odpowiednim identyfikatorze.

Do dokumentu sprawy podrzędnej dodane zostaną dwa pola wielowartościowe:

  • parentFields  - pole z nazwą pola wiążącego, do którego z w naszym przypadku zostanie dodana wartość "clientAddress"
  • parentTypes  - pole z nazwą typu sprawy nadrzędnej, do którego z w naszym przypadku zostanie dodana wartość "EliClient"

To pozwoli silnikowi HgDB na zbudowanie odpowiedniego zapytania pozwalającego na znalezienie sprawy nadrzędnej. 


Zasady budowania nazw pól

W dokumencie indeksu Lucene możemy wyróżnić dwa główne rodzaje pól: pola stałe/predefiniowane i pola dynamiczne. Dla każdego rodzaju zostały stworzone inne zasady tworzenia nazewnictwa pól indeksu Lucene.

Pola stałe/predefiniowane spraw

Pola stałe/predefiniowane to pola pochodzące z encji (pola reprezentują kolumny relacji w bazie danych).

Został wprowadzony podział pól, ze względu na ich pochodzenie w postaci kategorii pól. Kategorie reprezentują encje, a ich nazwy to nazwy encji, w których występują pola.

 Aby odróżnić ten rodzaj pól od pól obiektów spraw (pól dynamicznych), w Modelu 3.0 nazewnictwo dla wszystkich pól stałych, zostało opatrzone dodatkowym prefiksem mrc_.

Poniżej przedstawiono zasady nazewnictwa pól ze względu na ich przydział do kategorii:

  1. TypeCode - pola reprezentujące dane dotyczące definicji kodu typu sprawy albo typu dokumentu powiązanego ze sprawą. W zależności od wykorzystywanego modelu nazewnictwa w systemie do podstawowych nazw pól encji dodawany jest prefiks:
    1. dla typów obiektów spraw to typeTypeCode dla modelu 2.0 oraz typeCode dla modelu 3.0. Przykład nazwy pola dla modelu 3.0: "mrc_typeCodeValue".
    2. dla typów obiektów dokumentów to c2docTypeTypeCode dla modelu 2.0 oraz c2docTypeCode dla modelu 3.0.
  2. TypeKind - pola reprezentujące dane dotyczące rodzaju typu sprawy albo powiązanego ze sprawą dokumentu. W zależności od wykorzystywanego modelu nazewnictwa w systemie do podstawowych nazw pól encji dodawany jest prefiks:
    1. dla rodzajów spraw to typeTypeKind dla modelu 2.0 oraz typeKind dla modelu 3.0. Przykład nazwy pola dla modelu 3.0: "mrc_typeKindValue".
    2. dla rodzajów dokumentów to c2docTypeTypeKind dla modelu 2.0 oraz c2docTypeKind dla modelu 3.0.
  3. TypeCase - pola reprezentujące dane dotyczące definicji typu (wersję typu) sprawy lub powiązanego ze sprawą dokumentu. W zależności od wykorzystywanego modelu nazewnictwa w systemie do podstawowych nazw pól encji dodawany jest prefiks:
    1. dla typów obiektów spraw to type. Przykład nazw pól dla modelu 3.0: "mrc_typeRootVersionContextID", "mrc_typeTypeName".
    2. dla typów obiektów dokumentów to c2docType.
  4. Source - pola reprezentujące źródło pochodzenia sprawy albo powiązanego ze sprawą dokumentu. Do podstawowych nazw pól encji dodawany jest prefiks
    1. dla obiektów spraw to grSrc. 
    2. dla obiektów dokumentów to c2docSrc. Przykład nazwy pola dla modelu 3.0: "mrc_c2docSrcName".
  5. KtmNumber - pola reprezentujące dane powiązanego ze sprawą symbolu indeksu KTM (zobacz Kod Towarowo-Materiałowy). Prefiks nazwy pola to grKtm. Przykład nazwy pola dla modelu 3.0: "mrc_grKtmDescription".
  6. GroupCase - pola reprezentujące dane grupy spraw. Prefiks nazwy pola to gr.
  7. Participant - pola reprezentujące dane partycypantów sprawy (dane uczestników sprawy, klientów, których dotyczy sprawa). Prefiksy nazw pól: grParticipant, Groclin, grApplicant. Są to pola wielowartościowe. Przykład nazwy pola dla modelu 3.0: "mrc_grClientIdentity".
  8. Case - pola reprezentujące pola predefiniowane dotyczące sprawy, nazywane również "polami nagłówka sprawy" - zobacz opis CaseHeader. Do nazw pól nie jest dodawany żaden dodatkowy prefiks. Przykład nazwy pola status dla modelu 3.0: "mrc_status".
  9. QuickTask - pola reprezentujące "szybkie zadania" (Quick Tasks) powiązane z sprawą. Prefiks nazwy pola to qt. Przykład nazwy pola dla modelu 3.0: "mrc_qtReplyText".
  10. Comment - pola reprezentujące komentarze powiązane z sprawą. Prefiks nazwy pola to comm. Przykład nazwy pola dla modelu 3.0: "mrc_commContent".
  11. CaseDocument - pola reprezentujące dokumenty powiązane z sprawą. Prefiks nazwy pola to c2doc. Przykład nazwy pola dla modelu 3.0: "mrc_c2docSubject".
  12. InitStatus - - pola reprezentujące inicjalny status dokumentu powiązanego z sprawą. Prefiks nazwy pola to c2docInitStat. Przykład nazwy pola dla modelu 3.0: "mrc_c2docInitStatName".

Pola dynamiczne - pola obiektów

Pola dynamiczne, to pola, których nazwy oraz ich definicje przechowywane są jako metadane w bazie danych. 

Wszystkie pola dynamiczne należą do kategorii Case.

Mamy trzy rodzaje pól dynamicznych dla których zdefiniowano inne zasady tworzenia ich nazewnictwa:

  1. Pola podstawowe - pola reprezentujące pola proste obiektu sprawy. Nazwy pól są takie jak je zdefiniowano w obiekcie.
  2. Pola skonfliktowane - pola reprezentujące pola proste obiektu sprawy, których nazewnictwo jest w konflikcie z nazewnictwem pól stałych/predefiniowanych. W zależności od wykorzystywanego modelu nazewnictwa pól, mamy następujące zasady tworzenia nazwy pola:

    Dla modelu 2.0 nazewnictwa, z powodu braku prefiksu mrc_ w nazwach pól stałych, problem konfliktów nazw pól występował bardzo często. Dla modelu 3.0, dzięki prefiksowi mrc_, wystąpienie konfliktów w nazewnictwie pól zostało zminimalizowane do minimum. Nie używaj nazw pól, które występują w zbiorze pól stałych/predefiniowanych.

    1. dla modelu 2.0 do nazwy pola dodawany jest prefiks custom_. Przykład: pole obiektu o nazwie "status" przyjmie nazwę "custom_status".
    2. dla modelu 3.0 do nazwy pola dodawany jest sufiks _custom. Przykład: pole obiektu o nazwie "mrc_status" przyjmie nazwę "mrc_status_custom".
  3. Klucze obce  - Case2SubCase - pola wskazujące na powiązania pomiędzy sprawami głównymi (nadrzędnymi) i zależnymi (podrzędnymi). Takie pola budowane są według następującej reguły:
    1. dla modelu 2.0: <nazwa_pola>_luceneDocId. Przykład: "address_luceneDocId".
    2. dla modelu 3.0: <nazwa_pola>_mrc_Case_id. Przykład: "address_mrc_Case_id".

Pola stałe nieskategoryzowane

Są to pola, które są wykorzystywane przez mechanizmy wewnętrzne bazy HgDB, lecz można je również wykorzystać do wyszukiwania spraw w indeksie Lucene.

W zależności od wykorzystywanego modelu nazewnictwa nazwy pól budowane są według zasad:

  • dla modelu 2.0 nazwa pola jest taka jak jest (as is).
  • dla modelu 3.0 do nazwy pola dodawany jest prefiks mrc_. Przykład: "mrc_parentTypes".

Lista pól:

  1. Pole parentFields  - pole typu łańcucha znakowego (String), dodawane do dokumentu sprawy podrzędnej, wielowartościowe, zawiera nazwy pól spraw nadrzędnych, z którymi jest ona powiązana. Pole wspiera budowanie powiązań pomiędzy indeksowanymi dokumentami - powiązań pomiędzy sprawami głównymi (nadrzędnymi) i zależnymi (podrzędnymi). Przykład wartości pola: "address". 
    1. dla modelu 2.0 nazwa pola jest taka jak jest (as is).
    2. dla modelu 3.0 do nazwy pola dodawany jest prefiks mrc_ czyli przyjmie nazwę "mrc_parentFields".
  2. Pole parentTypes  - pole typu łańcucha znakowego (String), dodawane do dokumentu sprawy podrzędnej, wielowartościowe, zawiera nazwy typów spraw nadrzędnych, z którymi jest ona powiązana. Pole wspiera budowanie powiązań pomiędzy indeksowanymi dokumentami - powiązań pomiędzy sprawami głównymi (nadrzędnymi) i zależnymi (podrzędnymi). Przykład wartości pola: "FsmService".

Typy pól indeksu Lucene

Jako, że typ pola ma wpływ na wykorzystywany przez indeks mechanizm wyszukiwania, alternatywnym pojęciem dla typu pola jest pojęcie "typu wyszukiwania".

Podstawowe typy pól (typy wyszukiwania):

  • TextField - pole typu tekstowego, wyszukiwanie pełno tekstowe, bez rozróżniania wielkich i małych liter.
  • StringField - pole typu prostego łańcucha znakowego, jedno wyrażenie, słowo. Najczęściej przeznaczone do definiowania wartości typu kod, akronim lub identyfikator.  Wyszukiwanie z rozróżnianiem małych i wielkich liter.
  • LongField - pole liczbowe, liczba całkowita, długa. Wyszukiwanie liczb, zakresy liczb.
  • DateField - pole daty. Podczas indeksowania wartość pola z datą przekształcana jest do wartości liczby milisekund, do typu "LongField". Pozwala na budowanie zakresu wyszukiwania.
  • IntField - pole liczbowe, liczba całkowita. "krótka".
  • FloatField - pole liczbowe, zmiennoprzecinkowe.
  • DoubleField - pole liczbowe, zmiennoprzecinkowe.
  • CompositeIdField - pole reprezentujące wartości kluczy złożonych encji. Wartość takiego pola przekształcana jest do typu "StringField". Przykład: encja CaseDocument ma pole "id" klucza złożonego typu CaseDocumentPK. Wartość takiego pola indeksowana jest w postaci:
    "{\"caseId\":\"" + getCaseId() + "\", \"objectId\":\"" + objectId + "\", \"versionSeriesId\":\"" + versionSeriesId + "\"}" 
  • SubQuery - pola złożone, do których przypisana jest sprawa podrzędna. Aby wykorzystać to pole w wyszukiwaniu należy jego nazwę użyć jako prefiks odseparowany znakiem kropki, np. "address.mrc_Case_id". 



Nazwy pól stałych/predefiniowanych

Stałe pola pochodzące z encji reprezentujących dane przechowywane w relacyjnej bazie danych.

Comment

Nazwy pól indeksu Lucene reprezentujące encję Comment.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
idStringFieldnullcommLuceneDocId [true]mrc_commComment_id [true]Identyfikator komentarza
contentTextFieldnullcommContent [false]mrc_commContent [false]Treść komentarza
usernameStringFieldnullcommUsername [false]mrc_commUsername [false]Nazwa użytkownika (login), który dodał komentarz

TypeCode

Nazwy pól indeksu Lucene reprezentujące encję TypeCode. Możemy wyróżnić typy dokumentów i typy spraw. W celu ułatwienia wyszukiwania dokumentów do nazw pół je reprezentujących dodano składową c2doc (wiersze z nazwami pól typów dokumentów zostały wyróżnione innym kolorem).

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
nameTextFieldnullc2docTypeTypeCodeName [false]mrc_c2docTypeCodeName [false]Nazwa kodu typu - wartość reprezentująca kod typu dokumentu powiązanego ze sprawą.
valueStringFieldnullc2docTypeTypeCodeValue [false]mrc_c2docTypeCodeValue [true]Wartość kodu typu - wartość reprezentująca kod typu dokumentu powiązanego ze sprawą.
nameTextFieldnulltypeTypeCodeName [false]mrc_typeCodeName [false]Nazwa kodu typu - wartość reprezentująca kod typu sprawy.
valueStringFieldnulltypeTypeCodeValue [false]mrc_typeCodeValue [true]Wartość kodu typu - wartość reprezentująca kod typu sprawy.

Pola *Name oraz *Value są ze względu na implementowanie przez encję interfejsu NameValuePair (para wartości name oraz value). Dla encji TypeCode oba pola przyjmują tę samą wartość, zatem możne używać wyszukiwania po tych polach naprzemiennie lub używać tylko jedno z nich. Zwróćmy jednak uwagę na to, że pola te różnią się typem wyszukiwania, a to oznacza, że do pola *Value nie można używać mechanizmów 'wildcard'. W Mercury 3.0 rozbudowano mechanizmy sortowania i doszła możliwość sortowania wyników tylko po polu *Value.

TypeCase

Nazwy pól indeksu Lucene reprezentujące encję TypeCase. Encja zawiera pole "isDocument" informujące o tym czy dany typ sprawy jest typem reprezentującym metadane dokumentu czy obiektu sprawy. W celu ułatwienia wyszukiwania dokumentów do nazw typów je reprezentujących dodano składową c2doc (wiersze z nazwami pól typów dokumentów zostały wyróżnione innym kolorem).

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
accountNumberStringFieldnullc2docTypeAccountNumber [false]mrc_c2docTypeAccountNumber [false]Pole typu dokumentu.
descriptionTextFieldnullc2docTypeDescription [false]mrc_c2docTypeDescription [false]Pole typu dokumentu.
-StringFieldnullc2docTypeSourceOfObject [false]mrc_c2docTypeSourceOfObject [false]

Pole typu dokumentu wskazujące na pochodzenie (źródło) definicji typu dokumentu. Najczęściej wskazuje na nazwę zewnętrznego repozytorium dokumentów, pozwalającego na komunikację po protokole CMIS.

Pole związane z typem sprawy, lecz znajduje sie w encji TypeCase2SourceOfObject
idStringFieldnullc2docTypeTypeCase_id [true]mrc_c2docTypeTypeCase_id [true]Pole typu dokumentu.
typeNameStringFieldnullc2docTypeTypeName [false]mrc_c2docTypeTypeName [false]Pole typu dokumentu.
accountNumberStringFieldnulltypeAccountNumber [false]mrc_typeAccountNumber [false]

Pole typu sprawy.

descriptionTextFieldnulltypeDescription [false]mrc_typeDescription [false]Pole typu sprawy.
-StringFieldnulltypeSourceOfObject [false]mrc_typeSourceOfObject [false]

Pole typu sprawy wskazujące na pochodzenie (źródło) definicji typu sprawy.

Pole związane z typem sprawy, lecz znajduje sie w encji TypeCase2SourceOfObject
idStringFieldnulltypeLuceneDocId [true]mrc_typeTypeCase_id [true]Identyfikator typu sprawy.
typeNameStringFieldnulltypeTypeName [false]mrc_typeTypeName [false]Nazwa typu sprawy.

QuickTask

Nazwy pól indeksu Lucene reprezentujące encję QuickTask.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
descriptionTextFieldnullqtDescription [false]mrc_qtDescription [false]-
fromStringFieldnullqtFrom [false]mrc_qtFrom [false]-
priorityStringFieldnullqtPriority [false]mrc_qtPriority [false]-
idStringFieldnullqtLuceneDocId [true]mrc_qtQuickTask_id [true]-
replyDateLongFieldnullqtReplyDate [false]mrc_qtReplyDate [false]-
replyTextTextFieldnullqtReplyText [false]mrc_qtReplyText [false]-
sendDateLongFieldnullqtSendDate [false]mrc_qtSendDate [false]-
toStringFieldnullqtTo [false]mrc_qtTo [false]-

TypeKind

Nazwy pól indeksu Lucene reprezentujące encję TypeKind. Możemy wyróżnić typy dokumentów i typy spraw. W celu ułatwienia wyszukiwania dokumentów do nazw pół je reprezentujących dodano składową c2doc (wiersze z nazwami pól typów dokumentów zostały wyróżnione innym kolorem).

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
nameTextFieldnullc2docTypeTypeKindName [false]mrc_c2docTypeKindName [false]Nazwa rodzaju typu - wartość reprezentująca rodzaj typu dokumentu powiązanego ze sprawą.
valueStringFieldnullc2docTypeTypeKindValue [false]mrc_c2docTypeKindValue [true]Wartość rodzaju typu - wartość reprezentująca rodzaj typu dokumentu powiązanego ze sprawą.
nameTextFieldnulltypeTypeKindName [false]mrc_typeKindName [false]Nazwa rodzaju typu - wartość reprezentująca rodzaj typu sprawy.
valueStringFieldnulltypeTypeKindValue [false]mrc_typeKindValue [true]Wartość rodzaju typu - wartość reprezentująca rodzaj typu sprawy.

Pola *Name oraz *Value są ze względu na implementowanie przez encję interfejsu NameValuePair (para wartości name oraz value). Dla encji TypeKind oba pola przyjmują tę samą wartość, zatem możne używać wyszukiwania po tych polach naprzemiennie lub używać tylko jedno z nich. Zwróćmy jednak uwagę na to, że pola te różnią się typem wyszukiwania, a to oznacza, że do pola *Value nie można używać mechanizmów 'wildcard'. W Mercury 3.0 rozbudowano mechanizmy sortowania i doszła możliwość sortowania wyników tylko po polu *Value.

GroupCase

Nazwy pól indeksu Lucene reprezentujące encję GroupCase.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
idStringFieldnullgrLuceneDocId [true]mrc_grGroupCase_id [true]Identyfikator grupy spraw.

Source

Nazwy pól indeksu Lucene reprezentujące encję Source. Możemy wyróznić typy dokumentów i typy spraw. W celu ułatwienia wyszukiwania dokumentów do nazw pół je reprezentujących dodano składową c2doc (wiersze z nazwami pól typów dokumentów zostały wyróżnione innym kolorem).

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
nameTextFieldnullc2docSrcName [false]mrc_c2docSrcName [false]Nazwa źródła dokumentu powiązanego ze sprawą
valueStringFieldnullc2docSrcValue [false]mrc_c2docSrcValue [true]Identyfikator źródła dokumentu powiązanego ze sprawą
nameTextFieldnullgrSrcName [false]mrc_grSrcName [false]Nazwa źródła grupy spraw
valueStringFieldnullgrSrcValue [false]mrc_grSrcValue [true]Identyfikator źródła grupy spraw

Case

Nazwy pól indeksu Lucene reprezentujące encję Case.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
bpmProcessIdLongFieldnullbpmProcessId [true]mrc_bpmProcessId [true]-
bpmProcessIdStringFieldnullbpmProcessIdNotNull [false]mrc_bpmProcessIdNotNull [false]Dodatkowe pole indeksu pozwalające na wyszukiwanie spraw, które nie maja powiązania z instancję procesu BPM.
idStringFieldnullluceneDocId [true]mrc_Case_id [true]-
createDateLongFieldnullcreateDate [true]mrc_createDate [true]-
createdByStringFieldnullcreatedBy [true]mrc_createdBy [true]-
createdByRoleNameStringFieldnullcreatedByRoleName [true]mrc_createdByRoleName [true]-
dueDateLongFieldnulldueDate [true]mrc_dueDate [true]-
endDateLongFieldnullendDate [true]mrc_endDate [true]-
inventoryCodeStringFieldnullinventoryCode [true]mrc_inventoryCode [true]-
inventoryCodeStringFieldnullinventoryCodeReverse [false]mrc_inventoryCodeReverse [false]Dodatkowe pole indeksu, którego wartość przyjmuje wartość odwrotną do wartości pola inventoryCode . Przykład: gdy pole inventoryCode  ma wartość "4/G/1231234" , wartość pola przyjmie "4321321/G/4".
lastModifedByStringFieldnulllastModifedBy [false]mrc_lastModifedBy [false]-
lastModifiedByRoleNameStringFieldnulllastModifiedByRoleName [false]mrc_lastModifiedByRoleName [false]-
lastModifyDateLongFieldnulllastModifyDate [true]mrc_lastModifyDate [true]-
-TextFieldmrc_luceneDocumentMemoluceneDocumentMemo [false]mrc_luceneDocumentMemo [false]Pole tekstowe złożone z wartości większości pól sprawy. jego celem jest możliwość wyszukiwania spraw bez konieczności podawania nazwy pola reprezentującego wyszukiwaną wartość.
piervousVersionIdStringFieldnullpiervousVersionId [true]mrc_piervousVersionId [true]-
priceExchangeDateDoubleFieldnullpriceExchangeDate [false]mrc_priceExchangeDate [false]-
priceValueDoubleFieldnullpriceValue [true]mrc_priceValue [true]-
priceValueCodeStringFieldnullpriceValueCode [false]mrc_priceValueCode [false]-
-DoubleFieldnullpriceValueSys [false]mrc_priceValueSys [false]-
statusStringFieldnullstatus [false]mrc_status [false]-

CaseDocument

Nazwy pól indeksu Lucene reprezentujące encję CaseDocument.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
authorTextFieldnullc2docAuthor [false]mrc_c2docAuthor [false]-
idCompositeIdFieldnullc2docLuceneDocId [false]mrc_c2docCaseDocument_id [false]Reprezentacja identyfikatora dokumentu, który jest kluczem złożonym. Wartość pola przyjmuje postać:
"{\"caseId\":\"" + id.caseObj.id + "\", \"objectId\":\"" + id.objectId + "\", \"versionSeriesId\":\"" + id.versionSeriesId + "\"}" 
id.caseObj.idLongFieldnullc2docCaseId [false]mrc_c2docCaseId [false]Pole reprezentuje wartość identyfikatora sprawy, do której dany dokument został powiązany (składowa klucza obcego id ).
contentStreamIdStringFieldnullc2docContentStreamId [false]mrc_c2docContentStreamId [false]-
groupingCodeStringFieldnullc2docGroupingCode [false]mrc_c2docGroupingCode [false]-
isInputStringFieldnullc2docIsInput [false]mrc_c2docIsInput [false]-
isRootStringFieldnullc2docIsRoot [false]mrc_c2docIsRoot [false]-
id.objectIdStringFieldnullc2docObjectId [false]mrc_c2docObjectId [false]-
receivedDateLongFieldnullc2docReceivedDate [false]mrc_c2docReceivedDate [false]-
receiverTextFieldnullc2docReceiver [false]mrc_c2docReceiver [false]-
receiverDWTextFieldnullc2docReceiverDW [false]mrc_c2docReceiverDW [false]-
subjectTextFieldnullc2docSubject [false]mrc_c2docSubject [false]-
versionLabelStringFieldnullc2docVersionLabel [false]mrc_c2docVersionLabel [false]-
id.versionSeriesIdStringFieldnullc2docVersionSeriesId [false]mrc_c2docVersionSeriesId [false]Pole reprezentuje wartość wersji dokumentu (składowa klucza obcego id ).

Participant

Nazwy pól indeksu Lucene reprezentujące encję Participant. Encja ta zawiera pole "kind", którego wartość reprezentuje rodzaj powiązanego ze sprawą petenta. Aby uzyskać relację pomiędzy poszczególnymi elementami składającymi się na opis dodano odpowieni element składowy w nazwie pola indeksu Lucene.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
contactPersonTextFieldnullgrApplicantContactPerson [false]mrc_grApplicantContactPerson [false]-
emailStringFieldnullgrApplicantEmail [false]mrc_grApplicantEmail [false]-
fullnameTextFieldnullgrApplicantFullname [false]mrc_grApplicantFullname [false]-
identityStringFieldnullgrApplicantIdentity [false]mrc_grApplicantIdentity [false]-
-TextFieldnullgrApplicantKindName [false]mrc_grApplicantKindName [false]-
idStringFieldnullgrApplicantLuceneDocId [true]mrc_grApplicantParticipant_id [true]-
participantNameTextFieldnullgrApplicantParticipantName [false]mrc_grApplicantParticipantName [false]-
phone1StringFieldnullgrApplicantPhone1 [false]mrc_grApplicantPhone1 [false]-
phone2StringFieldnullgrApplicantPhone2 [false]mrc_grApplicantPhone2 [false]-
contactPersonTextFieldnullgrClientContactPerson [false]mrc_grClientContactPerson [false]-
emailStringFieldnullgrClientEmail [false]mrc_grClientEmail [false]-
fullnameTextFieldnullgrClientFullname [false]mrc_grClientFullname [false]-
identityStringFieldnullgrClientIdentity [false]mrc_grClientIdentity [false]-
-TextFieldnullgrClientKindName [false]mrc_grClientKindName [false]-
idStringFieldnullgrClientLuceneDocId [true]mrc_grClientParticipant_id [true]-
participantNameTextFieldnullgrClientParticipantName [false]mrc_grClientParticipantName [false]-
phone1StringFieldnullgrClientPhone1 [false]mrc_grClientPhone1 [false]-
phone2StringFieldnullgrClientPhone2 [false]mrc_grClientPhone2 [false]-
contactPersonTextFieldnullgrParticipantContactPerson [false]mrc_grParticipantContactPerson [false]-
emailStringFieldnullgrParticipantEmail [false]mrc_grParticipantEmail [false]-
fullnameTextFieldnullgrParticipantFullname [false]mrc_grParticipantFullname [false]-
identityStringFieldnullgrParticipantIdentity [false]mrc_grParticipantIdentity [false]-
-TextFieldnullgrParticipantKindName [false]mrc_grParticipantKindName [false]-
idStringFieldnullgrParticipantLuceneDocId [true]mrc_grParticipantParticipant_id [true]-
participantNameTextFieldnullgrParticipantParticipantName [false]mrc_grParticipantParticipantName [false]-
phone1StringFieldnullgrParticipantPhone1 [false]mrc_grParticipantPhone1 [false]-
phone2StringFieldnullgrParticipantPhone2 [false]mrc_grParticipantPhone2 [false]-

KtmNumber

Nazwy pól indeksu Lucene reprezentujące encję KtmNumber.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Nazwa Mercury 3.0 [sortowanie]Opis
descriptionTextFieldnullgrKtmDescription [false]mrc_grKtmDescription [false]-
groupCodeStringFieldnullgrKtmGroupCode [false]mrc_grKtmGroupCode [false]-
ktmCodeStringFieldnullgrKtmKtmCode [false]mrc_grKtmKtmCode [false]-
idStringFieldnullgrKtmLuceneDocId [true]mrc_grKtmKtmNumber_id [true]-
priceValueDoubleFieldnullgrKtmPriceValue [false]mrc_grKtmPriceValue [false]-

InitStatus

Nazwy pól indeksu Lucene reprezentujące encję InitStatus.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
nameTextFieldnullc2docInitStatName [false]mrc_c2docInitStatName [false]-
valueStringFieldnullc2docInitStatValue [false]mrc_c2docInitStatValue [false]-

Case2SubCase

Nazwy pól indeksu Lucene reprezentujące encję Case2SubCase.

Nazwa pola encjiTyp wyszukiwaniaEtykietaModel 2.0 [sortowanie]Model 3.0 [sortowanie]Opis
-StringFieldnullparentFields [false]mrc_parentFields [false]Pole wielowartościowe, lista nazw pól, w których sprawa występuje jako sprawa podrzędna.
-LongFieldnullnazwa dynamiczna w postaci "<nazwa_pola>LuceneDocId" [false]nazwa dynamiczna w postaci "<nazwa_pola>_mrc_Case_id" [false]Identyfikator sprawy podrzędnej, gdzie <nazwa_pola> to nazwa pola, które ją reprezentuje w sprawie nadrzędnej. Pole wielowartościowe gdy z danym polem powiązana jest lista spraw.

Predefiniowane typy złożone pól

Jest możliwość zdefiniowania pola typu "COMPLEX" ze wskazaniem implementacji klasy, która reprezentowała takie pole. Obecnie Mercury 3.0 (Hgdb) ma wbudowaną obsługę dwóch klas.

CaseClient

Nazwy pól indeksu Lucene reprezentujące klasę pro.ibpm.mercury.values.beans.CaseClient.

Nazwa pola encjiTyp wyszukiwaniaEtykietaNazwa [sortowanie]Opis
clientTypeStringFieldnullcaseclientClientType [false]-
companyNameTextFieldnullcaseclientCompanyName [false]-
contactPersonTextFieldnullcaseclientContactPerson [false]-
emailStringFieldnullcaseclientEmail [false]-
nameTextFieldnullcaseclientName [false]-
peselStringFieldnullcaseclientPesel [false]-
phoneNumber1StringFieldnullcaseclientPhoneNumber1 [false]-
phoneNumber2StringFieldnullcaseclientPhoneNumber2 [false]-
regonStringFieldnullcaseclientRegon [false]-
surnameTextFieldnullcaseclientSurname [false]-

CaseApplicant

Nazwy pól indeksu Lucene reprezentujące klasę pro.ibpm.mercury.values.beans.CaseApplicant.

Nazwa pola encjiTyp wyszukiwaniaEtykietaNazwa [sortowanie]Opis
agentNumberStringFieldnullcaseapplicantAgentNumber [false]-
applicantTypeStringFieldnullcaseapplicantApplicantType [false]-
brokerNameTextFieldnullcaseapplicantBrokerName [false]-
workerNameTextFieldnullcaseapplicantWorkerName [false]-