# FulltextSearch

Interface to our embedded Fulltext Search

## POST /cmn/ft-search/types/index

> rebuild index for type(s)

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search/types/index":{"post":{"tags":["FulltextSearch"],"summary":"rebuild index for type(s)","operationId":"rebuildIndexByType","requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"string"}}}}}}}}}
```

## POST /cmn/ft-search/phonetic

> phonetic search

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search/phonetic":{"post":{"tags":["FulltextSearch"],"summary":"phonetic search","operationId":"queryPhonetic","parameters":[{"name":"perspective","in":"query","description":"Perspective of result","required":false,"style":"form","schema":{}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/common-ftsearch-SearchPhoneticRequest"}}},"required":true},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/common-ftsearch-SearchResult"}}}}},"422":{"description":"query was not valid to process","content":{"application/json":{"schema":{"$ref":"#/components/schemas/core-error-ApiError"}}}}}}}},"components":{"schemas":{"common-ftsearch-SearchPhoneticRequest":{"properties":{"languageCode":{"type":"string","description":"language code","maxLength":2,"minLength":0},"types":{"type":"array","description":"Die Types, die durchsucht werden sollen. Oder null für alle","items":{"type":"string","description":"Die Types, die durchsucht werden sollen. Oder null für alle"}},"name1":{"type":"string","description":"(optional) ein name1"},"name2":{"type":"string","description":"(optional) ein name2"},"name3":{"type":"string","description":"(optional) ein name3"},"street":{"type":"string","description":"(optional) eine street"},"city":{"type":"string","description":"(optional) eine city"},"email":{"type":"string","description":"(optional) eine email"}}},"common-ftsearch-SearchResult":{"properties":{"entryType":{"type":"string","description":"origin of document"},"refId":{"type":"string","description":"origin id"},"parentEntryType":{"type":"string","description":"parent of document"},"parentRefId":{"type":"string","description":"parent id"},"document":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}}},"unknownservice-unknownmodule-JsonNode":{"description":"Search-Dialog"},"core-error-ApiError":{"properties":{"instance":{"type":"string","description":"the resource that produced the error","readOnly":true},"trackingId":{"type":"string","description":"Internal tracking number for this Error","readOnly":true},"timeOfOccurence":{"type":"string","format":"date-time","description":"Internal timestamp, when this error happened","readOnly":true},"errors":{"$ref":"#/components/schemas/core-error-ApiError.Errors"},"decisions":{"type":"array","description":"all decisions, we need to take care of","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision"},"readOnly":true,"uniqueItems":true},"httpStatus":{"type":"integer","format":"int32","description":"HTTP-Status code"},"debug-info-url":{"type":"string","format":"uri","description":"optional url to get a more detailed stack trace","readOnly":true}},"required":["decisions","errors","instance","timeOfOccurence","trackingId"]},"core-error-ApiError.Errors":{"description":"all occured errors","properties":{"fieldErrors":{"type":"object","additionalProperties":{"type":"array","description":"One or more validation errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true},"description":"One or more validation errors","readOnly":true},"services":{"type":"array","description":"One or more generel service errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true}},"readOnly":true,"required":["fieldErrors","services"]},"core-error-ApiErrorDetail":{"description":"One or more generel service errors","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"property":{"type":"string","description":"property that has a constraint violation  (optional)"}},"readOnly":true},"core-api-LocalizeableMessage":{"description":"localizeable message","properties":{"messageCode":{"type":"string","description":"Internal unique identifier/key for this message"},"messageParameters":{"type":"object","additionalProperties":{"type":"object","description":"list of parameters to fill a formattable message"},"description":"list of parameters to fill a formattable message"},"formattedMessage":{"type":"string","description":"formatted message (default language)"}}},"core-error-ApiErrorDecision":{"description":"all decisions, we need to take care of","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"title":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"multipleAnswersAllowed":{"type":"boolean","default":false,"description":"true, if an array of answers is required","readOnly":true},"textInput":{"type":"boolean","default":false,"description":"true, if text input instead of decisions is required","readOnly":true},"options":{"type":"array","description":"possible options for this decision","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOption"},"readOnly":true},"answerProperty":{"type":"string","description":"property to fill the decision into","readOnly":true},"answerPropertyType":{"type":"string","description":"type of the target property","enum":["FIELD","PARAMETER"],"readOnly":true},"searchDialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}},"readOnly":true},"core-error-ApiErrorDecision.DecisionOption":{"description":"possible options for this decision","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"value":{"type":"string","description":"value for this decision","readOnly":true},"defaultOption":{"type":"boolean","default":false,"description":"default option","readOnly":true},"searchDialogs":{"type":"array","description":"Zu verwendende Search-Dialogs","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOptionSearchDialog"},"readOnly":true}}},"core-error-ApiErrorDecision.DecisionOptionSearchDialog":{"description":"Zu verwendende Search-Dialogs","properties":{"dialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"},"answerKey":{"type":"string","description":"Schlüssel für das Ergebnis vom Search-Dialog","readOnly":true}}}}}}
```

## GET /cmn/ft-search

> Find the Resource by query-parameters

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search":{"get":{"tags":["FulltextSearch"],"summary":"Find the Resource by query-parameters","operationId":"query_1","parameters":[{"name":"words","in":"query","description":"terms to search for","required":false,"style":"form","explode":true,"schema":{"items":{}}},{"name":"types","in":"query","description":"types to search into","required":false,"style":"form","explode":true,"schema":{"items":{}}},{"name":"grouped","in":"query","description":"should the result be grouped by types","required":false,"style":"form","schema":{}},{"name":"_limit","in":"query","description":"max number of search results (per group, if grouped == true)","required":false,"style":"form","schema":{}},{"name":"_start","in":"query","description":"Offset","required":false,"style":"form","schema":{}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","enum":["EXACT","DISTINCT_MATCH_COUNT","FREQUENCY"]}},{"name":"perspective","in":"query","description":"Perspective of result","required":false,"style":"form","schema":{}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/common-ftsearch-SearchResult"}}}}},"422":{"description":"query was not valid to process","content":{"application/json":{"schema":{"$ref":"#/components/schemas/core-error-ApiError"}}}}}}}},"components":{"schemas":{"common-ftsearch-SearchResult":{"properties":{"entryType":{"type":"string","description":"origin of document"},"refId":{"type":"string","description":"origin id"},"parentEntryType":{"type":"string","description":"parent of document"},"parentRefId":{"type":"string","description":"parent id"},"document":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}}},"unknownservice-unknownmodule-JsonNode":{"description":"Search-Dialog"},"core-error-ApiError":{"properties":{"instance":{"type":"string","description":"the resource that produced the error","readOnly":true},"trackingId":{"type":"string","description":"Internal tracking number for this Error","readOnly":true},"timeOfOccurence":{"type":"string","format":"date-time","description":"Internal timestamp, when this error happened","readOnly":true},"errors":{"$ref":"#/components/schemas/core-error-ApiError.Errors"},"decisions":{"type":"array","description":"all decisions, we need to take care of","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision"},"readOnly":true,"uniqueItems":true},"httpStatus":{"type":"integer","format":"int32","description":"HTTP-Status code"},"debug-info-url":{"type":"string","format":"uri","description":"optional url to get a more detailed stack trace","readOnly":true}},"required":["decisions","errors","instance","timeOfOccurence","trackingId"]},"core-error-ApiError.Errors":{"description":"all occured errors","properties":{"fieldErrors":{"type":"object","additionalProperties":{"type":"array","description":"One or more validation errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true},"description":"One or more validation errors","readOnly":true},"services":{"type":"array","description":"One or more generel service errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true}},"readOnly":true,"required":["fieldErrors","services"]},"core-error-ApiErrorDetail":{"description":"One or more generel service errors","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"property":{"type":"string","description":"property that has a constraint violation  (optional)"}},"readOnly":true},"core-api-LocalizeableMessage":{"description":"localizeable message","properties":{"messageCode":{"type":"string","description":"Internal unique identifier/key for this message"},"messageParameters":{"type":"object","additionalProperties":{"type":"object","description":"list of parameters to fill a formattable message"},"description":"list of parameters to fill a formattable message"},"formattedMessage":{"type":"string","description":"formatted message (default language)"}}},"core-error-ApiErrorDecision":{"description":"all decisions, we need to take care of","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"title":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"multipleAnswersAllowed":{"type":"boolean","default":false,"description":"true, if an array of answers is required","readOnly":true},"textInput":{"type":"boolean","default":false,"description":"true, if text input instead of decisions is required","readOnly":true},"options":{"type":"array","description":"possible options for this decision","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOption"},"readOnly":true},"answerProperty":{"type":"string","description":"property to fill the decision into","readOnly":true},"answerPropertyType":{"type":"string","description":"type of the target property","enum":["FIELD","PARAMETER"],"readOnly":true},"searchDialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}},"readOnly":true},"core-error-ApiErrorDecision.DecisionOption":{"description":"possible options for this decision","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"value":{"type":"string","description":"value for this decision","readOnly":true},"defaultOption":{"type":"boolean","default":false,"description":"default option","readOnly":true},"searchDialogs":{"type":"array","description":"Zu verwendende Search-Dialogs","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOptionSearchDialog"},"readOnly":true}}},"core-error-ApiErrorDecision.DecisionOptionSearchDialog":{"description":"Zu verwendende Search-Dialogs","properties":{"dialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"},"answerKey":{"type":"string","description":"Schlüssel für das Ergebnis vom Search-Dialog","readOnly":true}}}}}}
```

## GET /cmn/ft-search/types

> return all available types

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search/types":{"get":{"tags":["FulltextSearch"],"summary":"return all available types","operationId":"getAvailableTypes","parameters":[{"name":"indexable","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}}}}}}}}
```

## GET /cmn/ft-search/types/statistics

>

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search/types/statistics":{"get":{"tags":["FulltextSearch"],"operationId":"getStatisticTypes","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/common-fulltext-SearchEntryStatistics"}}}}}}}}},"components":{"schemas":{"common-fulltext-SearchEntryStatistics":{"properties":{"type":{"type":"string"},"count":{"type":"integer","format":"int64"}}}}}}
```

## GET /cmn/ft-search/find-first

> unstructured search

```json
{"openapi":"3.1.0","info":{"title":"OpenAPI definition","version":"2026.14.3"},"tags":[{"name":"FulltextSearch","description":"Interface to our embedded Fulltext Search"}],"servers":[{"url":"http://localhost:52177/api","description":"Generated server url"}],"paths":{"/cmn/ft-search/find-first":{"get":{"tags":["FulltextSearch"],"summary":"unstructured search","operationId":"fetchFirstOnly","parameters":[{"name":"words","in":"query","description":"terms to search for","required":false,"style":"form","explode":true,"schema":{"items":{}}},{"name":"types","in":"query","description":"types to search into","required":false,"style":"form","explode":true,"schema":{"items":{}}},{"name":"perspective","in":"query","description":"Perspective of result","required":false,"style":"form","schema":{}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/common-ftsearch-SearchResult"}}}},"422":{"description":"query was not valid to process","content":{"application/json":{"schema":{"$ref":"#/components/schemas/core-error-ApiError"}}}}}}}},"components":{"schemas":{"common-ftsearch-SearchResult":{"properties":{"entryType":{"type":"string","description":"origin of document"},"refId":{"type":"string","description":"origin id"},"parentEntryType":{"type":"string","description":"parent of document"},"parentRefId":{"type":"string","description":"parent id"},"document":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}}},"unknownservice-unknownmodule-JsonNode":{"description":"Search-Dialog"},"core-error-ApiError":{"properties":{"instance":{"type":"string","description":"the resource that produced the error","readOnly":true},"trackingId":{"type":"string","description":"Internal tracking number for this Error","readOnly":true},"timeOfOccurence":{"type":"string","format":"date-time","description":"Internal timestamp, when this error happened","readOnly":true},"errors":{"$ref":"#/components/schemas/core-error-ApiError.Errors"},"decisions":{"type":"array","description":"all decisions, we need to take care of","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision"},"readOnly":true,"uniqueItems":true},"httpStatus":{"type":"integer","format":"int32","description":"HTTP-Status code"},"debug-info-url":{"type":"string","format":"uri","description":"optional url to get a more detailed stack trace","readOnly":true}},"required":["decisions","errors","instance","timeOfOccurence","trackingId"]},"core-error-ApiError.Errors":{"description":"all occured errors","properties":{"fieldErrors":{"type":"object","additionalProperties":{"type":"array","description":"One or more validation errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true},"description":"One or more validation errors","readOnly":true},"services":{"type":"array","description":"One or more generel service errors","items":{"$ref":"#/components/schemas/core-error-ApiErrorDetail"},"readOnly":true,"uniqueItems":true}},"readOnly":true,"required":["fieldErrors","services"]},"core-error-ApiErrorDetail":{"description":"One or more generel service errors","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"property":{"type":"string","description":"property that has a constraint violation  (optional)"}},"readOnly":true},"core-api-LocalizeableMessage":{"description":"localizeable message","properties":{"messageCode":{"type":"string","description":"Internal unique identifier/key for this message"},"messageParameters":{"type":"object","additionalProperties":{"type":"object","description":"list of parameters to fill a formattable message"},"description":"list of parameters to fill a formattable message"},"formattedMessage":{"type":"string","description":"formatted message (default language)"}}},"core-error-ApiErrorDecision":{"description":"all decisions, we need to take care of","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"title":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"multipleAnswersAllowed":{"type":"boolean","default":false,"description":"true, if an array of answers is required","readOnly":true},"textInput":{"type":"boolean","default":false,"description":"true, if text input instead of decisions is required","readOnly":true},"options":{"type":"array","description":"possible options for this decision","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOption"},"readOnly":true},"answerProperty":{"type":"string","description":"property to fill the decision into","readOnly":true},"answerPropertyType":{"type":"string","description":"type of the target property","enum":["FIELD","PARAMETER"],"readOnly":true},"searchDialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"}},"readOnly":true},"core-error-ApiErrorDecision.DecisionOption":{"description":"possible options for this decision","properties":{"message":{"$ref":"#/components/schemas/core-api-LocalizeableMessage"},"value":{"type":"string","description":"value for this decision","readOnly":true},"defaultOption":{"type":"boolean","default":false,"description":"default option","readOnly":true},"searchDialogs":{"type":"array","description":"Zu verwendende Search-Dialogs","items":{"$ref":"#/components/schemas/core-error-ApiErrorDecision.DecisionOptionSearchDialog"},"readOnly":true}}},"core-error-ApiErrorDecision.DecisionOptionSearchDialog":{"description":"Zu verwendende Search-Dialogs","properties":{"dialog":{"$ref":"#/components/schemas/unknownservice-unknownmodule-JsonNode"},"answerKey":{"type":"string","description":"Schlüssel für das Ergebnis vom Search-Dialog","readOnly":true}}}}}}
```
