diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..bf04c33 --- /dev/null +++ b/.env.example @@ -0,0 +1,29 @@ +# Password for the 'elastic' user (at least 6 characters) +ELASTIC_PASSWORD= + +# Password for the 'kibana_system' user (at least 6 characters) +KIBANA_PASSWORD= + +# Version of Elastic products +STACK_VERSION=7.17.1 + +# Set the cluster name +CLUSTER_NAME=LiferayElasticsearchCluster + +# Set to 'basic' or 'trial' cdto automatically start the 30-day trial +LICENSE=basic +#LICENSE=trial + +# Port to expose Elasticsearch HTTP API to the host +ES_PORT=9200 +#ES_PORT=127.0.0.1:9200 + +# Port to expose Kibana to the host +KIBANA_PORT=5601 +#KIBANA_PORT=80 + +# Increase or decrease based on the available host memory (in bytes) +MEM_LIMIT=1073741824 + +# Project namespace (defaults to the current folder name if not set) +#COMPOSE_PROJECT_NAME=myproject \ No newline at end of file diff --git a/.gitignore b/.gitignore index 43fdf38..31cfdf2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ es/logs es/data +.env diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..141d8ca --- /dev/null +++ b/Makefile @@ -0,0 +1,23 @@ +.PHONY: clean +clean: ## Cleanup index + rm -fR ./es/data + mkdir ./es/data + +.PHONY: destroy +destroy: ## Destroy all environment including IntelliJ metadata and libraries + docker-compose down --rmi all --volumes --remove-orphans; \ + rm -fR ./es/data + rm -fR .gradle + rm -fR .idea + +.PHONY: run +run: ## Shorthand of running docker images + docker-compose up --build --remove-orphans + +.PHONY: down +down: ## Stop Docker + docker-compose down + +.PHONY: help +help: ## Display this help screen + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' diff --git a/README.md b/README.md index 4fae84a..febdb28 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,19 @@ # elasticsearch-docker-composer-for-liferay-7 -This is for setting up docker-composer to test Elasticsearch and Kuromoji against Liferay 7.3 GA1 / DXP 7.3 SP1 (Elasticsearch 7.9.3). +This is for setting up docker-composer to test Elasticsearch and Kuromoji for Liferay 7.x ## Required environment -- Docker 3.3.3 >= +- Docker 4.5.0 >= - Java8 or Java11 ## How to set up 1. Clone this repository 1. Change the file permission of `/es/docker-entrypoint.sh` to executable. +1. Copy `.env.exampl` and create `.env` in the repository root directory. 1. Go back to the root folder and run `docker-compose up --build` or just `docker-compose up` -1. Start Liferay 7.3 +1. Start Liferay 7.x 1. Login as an administrator and navigate to Control Panel -> Configuration -> System Setting -> Search -> Elasticsearch 7 1. Check `Production Mode Enabled` true. 1. Open `index-settings.json` and paste it into `Additional Index Configurations` Text field. diff --git a/docker-compose.yml b/docker-compose.yml index 75ef81e..67c43f7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,35 +1,131 @@ version: "3.8" services: + setup: + image: docker.elastic.co/elasticsearch/elasticsearch:${STACK_VERSION} + volumes: + - certs:/usr/share/elasticsearch/config/certs + user: "0" + command: > + bash -c ' + if [ x${ELASTIC_PASSWORD} == x ]; then + echo "Set the ELASTIC_PASSWORD environment variable in the .env file"; + exit 1; + elif [ x${KIBANA_PASSWORD} == x ]; then + echo "Set the KIBANA_PASSWORD environment variable in the .env file"; + exit 1; + fi; + if [ ! -f certs/ca.zip ]; then + echo "Creating CA"; + bin/elasticsearch-certutil ca --silent --pem -out config/certs/ca.zip; + unzip config/certs/ca.zip -d config/certs; + fi; + if [ ! -f certs/certs.zip ]; then + echo "Creating certs"; + echo -ne \ + "instances:\n"\ + " - name: elasticsearch\n"\ + " dns:\n"\ + " - elasticsearch\n"\ + " - localhost\n"\ + " ip:\n"\ + " - 127.0.0.1\n"\ + > config/certs/instances.yml; + bin/elasticsearch-certutil cert --silent --pem -out config/certs/certs.zip --in config/certs/instances.yml --ca-cert config/certs/ca/ca.crt --ca-key config/certs/ca/ca.key; + unzip config/certs/certs.zip -d config/certs; + fi; + echo "Setting file permissions" + chown -R root:root config/certs; + find . -type d -exec chmod 750 \{\} \;; + find . -type f -exec chmod 640 \{\} \;; + echo "Waiting for Elasticsearch availability"; + until curl -s --cacert config/certs/ca/ca.crt https://elasticsearch:9200 | grep -q "missing authentication credentials"; do sleep 30; done; + echo "Setting kibana_system password"; + until curl -s -X POST --cacert config/certs/ca/ca.crt -u elastic:${ELASTIC_PASSWORD} -H "Content-Type: application/json" https://elasticsearch:9200/_security/user/kibana_system/_password -d "{\"password\":\"${KIBANA_PASSWORD}\"}" | grep -q "^{}"; do sleep 10; done; + echo "All done!"; + ' + healthcheck: + test: ["CMD-SHELL", "[ -f config/certs/elasticsearch/elasticsearch.crt ]"] + interval: 1s + timeout: 5s + retries: 120 + elasticsearch: - build: es - mem_limit: 4g + depends_on: + setup: + condition: service_healthy + build: + context: ./es + args: + - STACK_VERSION=${STACK_VERSION} + volumes: + - certs:/usr/share/elasticsearch/config/certs + - esdata:/usr/share/elasticsearch/data ports: - - "9200:9200" - - "9300:9300" + - ${ES_PORT}:9200 + environment: + - node.name=elasticsearch + - cluster.name=${CLUSTER_NAME} + - cluster.initial_master_nodes=elasticsearch + - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} + - bootstrap.memory_lock=true + - xpack.security.enabled=true + - xpack.security.http.ssl.enabled=true + - xpack.security.http.ssl.key=certs/elasticsearch/elasticsearch.key + - xpack.security.http.ssl.certificate=certs/elasticsearch/elasticsearch.crt + - xpack.security.http.ssl.certificate_authorities=certs/ca/ca.crt + - xpack.security.http.ssl.verification_mode=certificate + - xpack.security.transport.ssl.enabled=true + - xpack.security.transport.ssl.key=certs/elasticsearch/elasticsearch.key + - xpack.security.transport.ssl.certificate=certs/elasticsearch/elasticsearch.crt + - xpack.security.transport.ssl.certificate_authorities=certs/ca/ca.crt + - xpack.security.transport.ssl.verification_mode=certificate + - xpack.license.self_generated.type=${LICENSE} + mem_limit: ${MEM_LIMIT} ulimits: memlock: soft: -1 hard: -1 - volumes: - - ./es/data/:/usr/share/elasticsearch/data/ - - ./es/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml - - ./es/config/logging.yml:/usr/share/elasticsearch/config/logging.yml - - ./es/config/userdict_ja.txt:/usr/share/elasticsearch/config/userdict_ja.txt - - ./es/logs/:/var/log/elasticsearch/ - environment: - - "ES_JAVA_OPTS=-Xms2g -Xmx2g" - - discovery.type=single-node - - bootstrap.memory_lock=true - - xpack.security.enabled=false - - xpack.graph.enabled=false - - xpack.ml.enabled=false - - xpack.monitoring.enabled=true - - xpack.watcher.enabled=false + healthcheck: + test: + [ + "CMD-SHELL", + "curl -s --cacert config/certs/ca/ca.crt https://localhost:9200 | grep -q 'missing authentication credentials'", + ] + interval: 10s + timeout: 10s + retries: 120 kibana: - image: docker.elastic.co/kibana/kibana:7.9.3 + depends_on: + elasticsearch: + condition: service_healthy + image: docker.elastic.co/kibana/kibana:${STACK_VERSION} + volumes: + - certs:/usr/share/kibana/config/certs + - kibanadata:/usr/share/kibana/data ports: - - "5601:5601" + - ${KIBANA_PORT}:5601 environment: - - xpack.security.enabled=false - - "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" + - SERVERNAME=kibana + - ELASTICSEARCH_HOSTS=https://elasticsearch:9200 + - ELASTICSEARCH_USERNAME=kibana_system + - ELASTICSEARCH_PASSWORD=${KIBANA_PASSWORD} + - ELASTICSEARCH_SSL_CERTIFICATEAUTHORITIES=config/certs/ca/ca.crt + mem_limit: ${MEM_LIMIT} + healthcheck: + test: + [ + "CMD-SHELL", + "curl -s -I http://localhost:5601 | grep -q 'HTTP/1.1 302 Found'", + ] + interval: 10s + timeout: 10s + retries: 120 + +volumes: + certs: + driver: local + esdata: + driver: local + kibanadata: + driver: local \ No newline at end of file diff --git a/es/Dockerfile b/es/Dockerfile index ff8c4fd..f25fc63 100644 --- a/es/Dockerfile +++ b/es/Dockerfile @@ -1,8 +1,7 @@ -FROM docker.elastic.co/elasticsearch/elasticsearch:7.9.3 +ARG STACK_VERSION=$STACK_VERSION +FROM docker.elastic.co/elasticsearch/elasticsearch:$STACK_VERSION -COPY ./elasticsearch-analysis-kuromoji-ipadic-neologd-7.9.3-SNAPSHOT.zip ./ - -RUN elasticsearch-plugin install file:./elasticsearch-analysis-kuromoji-ipadic-neologd-7.9.3-SNAPSHOT.zip +RUN elasticsearch-plugin install analysis-kuromoji RUN elasticsearch-plugin install analysis-icu RUN elasticsearch-plugin install analysis-smartcn RUN elasticsearch-plugin install analysis-stempel \ No newline at end of file diff --git a/es/config/userdict_ja.txt b/es/config/userdict_ja.txt index 7a7b93e..d333a94 100644 --- a/es/config/userdict_ja.txt +++ b/es/config/userdict_ja.txt @@ -1,2 +1,5 @@ 東京スカイツリー,東京 スカイツリー,トウキョウ スカイツリー,カスタム名詞 -あいうえお,あいうえお,アイウエオ,カスタム名詞 \ No newline at end of file +あいうえお,あいうえお,アイウエオ,カスタム名詞 +京都府,京都,府,キョウト,フ,カスタム名詞 +東京都,東京,都,トウキョウ,ト,カスタム名詞 +金メダル,金,メダル,キン,メダル,カスタム名詞 \ No newline at end of file diff --git a/es/elasticsearch-analysis-kuromoji-ipadic-neologd-7.9.3-SNAPSHOT.zip b/es/elasticsearch-analysis-kuromoji-ipadic-neologd-7.9.3-SNAPSHOT.zip deleted file mode 100644 index c83abb5..0000000 Binary files a/es/elasticsearch-analysis-kuromoji-ipadic-neologd-7.9.3-SNAPSHOT.zip and /dev/null differ diff --git a/index-settings.json b/index-settings.json index a3241f2..d2d511e 100644 --- a/index-settings.json +++ b/index-settings.json @@ -1,35 +1,145 @@ { - "analysis": { - "filter" : { - "liferay_readingform" : { - "type": "kuromoji_ipadic_neologd_readingform", - "use_romaji": "false" + "analysis": { + "char_filter": { + "normalize": { + "type": "icu_normalizer", + "name": "nfkc", + "mode": "compose" } }, - "analyzer": { - "liferay_kuromoji": { - "type": "custom", - "tokenizer": "liferay_kuromoji_tokenizer", - "char_filter": [ - "html_strip", - "kuromoji_ipadic_neologd_iteration_mark" + "tokenizer": { + "kuromoji_tokenizer_ja": { + "mode": "search", + "type": "kuromoji_tokenizer", + "discard_compound_token": true + }, + "ngram_tokenizer_ja": { + "type": "ngram", + "min_gram": 2, + "max_gram": 2, + "token_chars": [ + "letter", + "digit" + ] + } + }, + "analyzer": { + "keyword_lowercase": { + "filter": "lowercase", + "tokenizer": "keyword" + }, + "liferay_analyzer_en": { + "filter": [ + "english_possessive_stemmer", + "lowercase", + "liferay_filter_synonym_en", + "english_stop", + "english_stemmer" ], - "filter" : [ + "tokenizer": "standard" + }, + "liferay_analyzer_es": { + "filter": [ "lowercase", + "spanish_stop", + "liferay_filter_synonym_es", + "spanish_stemmer" + ], + "tokenizer": "standard" + }, + "liferay_analyzer_ja": { + "char_filter": [ + "normalize" + ], + "tokenizer": "kuromoji_tokenizer_ja", + "filter": [ + "kuromoji_baseform", + "kuromoji_part_of_speech", + "liferay_filter_synonym_ja", "cjk_width", - "kuromoji_ipadic_neologd_baseform", - "kuromoji_ipadic_neologd_part_of_speech", - "kuromoji_ipadic_neologd_readingform", - "kuromoji_ipadic_neologd_stemmer" + "ja_stop", + "kuromoji_stemmer", + "lowercase" ] - } - }, - "tokenizer": { - "liferay_kuromoji_tokenizer": { - "type": "kuromoji_ipadic_neologd_tokenizer", - "mode": "search", - "user_dictionary": "userdict_ja.txt" - } - } - } + }, + "liferay_analyzer_search_ja": { + "char_filter": [ + "normalize" + ], + "tokenizer": "kuromoji_tokenizer_ja", + "filter": [ + "kuromoji_baseform", + "kuromoji_part_of_speech", + "liferay_filter_synonym_ja", + "cjk_width", + "ja_stop", + "kuromoji_stemmer", + "lowercase" + ] + }, + "liferay_analyzer_ngram_ja": { + "type": "custom", + "char_filter": [ + "normalize" + ], + "tokenizer": "ngram_tokenizer_ja", + "filter": [ + "lowercase" + ] + }, + "liferay_analyzer_search_ngram_ja": { + "type": "custom", + "char_filter": [ + "normalize" + ], + "tokenizer": "ngram_tokenizer_ja", + "filter": [ + "liferay_filter_synonym_ja", + "lowercase" + ] + } + }, + "filter": { + "english_possessive_stemmer": { + "language": "possessive_english", + "type": "stemmer" + }, + "english_stemmer": { + "language": "english", + "type": "stemmer" + }, + "english_stop": { + "stopwords": "_english_", + "type": "stop" + }, + "liferay_filter_synonym_en": { + "lenient": true, + "synonyms": [], + "type": "synonym_graph" + }, + "liferay_filter_synonym_es": { + "lenient": true, + "synonyms": [], + "type": "synonym_graph" + }, + "liferay_filter_synonym_index_ja": { + "lenient": true, + "synonyms": [], + "type": "synonym_graph" + }, + "liferay_filter_synonym_ja": { + "lenient": true, + "synonyms": [], + "type": "synonym_graph" + }, + "spanish_stemmer": { + "language": "light_spanish", + "type": "stemmer" + }, + "spanish_stop": { + "stopwords": "_spanish_", + "type": "stop" + } + } + } } \ No newline at end of file diff --git a/liferay-type-mappings.json b/liferay-type-mappings.json index d95078f..c26b9eb 100644 --- a/liferay-type-mappings.json +++ b/liferay-type-mappings.json @@ -1,876 +1,985 @@ { - "LiferayDocumentType": { - "date_detection": false, - "dynamic_templates": [ - { - "template_ddmFieldArray_ddmFieldValue_Number_sortable": { - "mapping": { - "scaling_factor": 1000, - "store": true, - "type": "scaled_float" - }, - "path_match": "ddmFieldArray.ddmFieldValue*Number_sortable" - } - }, - { - "template_long_sortable": { - "mapping": { - "store": true, - "type": "long" - }, - "match": "*_sortable", - "match_mapping_type": "long" - } - }, - { - "template_string_sortable": { - "mapping": { - "store": true, - "type": "keyword" - }, - "match": "*_sortable", - "match_mapping_type": "string" - } - }, - { - "template_geolocation": { - "mapping": { - "fields": { - "geopoint": { - "store": true, - "type": "keyword" - } - }, - "store": true, - "type": "geo_point" - }, - "match": "*_geolocation" - } - }, - { - "template_ddmFieldArray_ddmFieldValueKeyword": { - "mapping": { - "store": true, - "type": "keyword" - }, - "match_mapping_type": "string", - "path_match": "ddmFieldArray.ddmFieldValueKeyword*" - } - }, - { - "template_ddm_keyword": { - "mapping": { - "store": true, - "type": "keyword" - }, - "match": "ddm__keyword__*", - "match_mapping_type": "string" - } - }, - { - "template_expando_keyword": { - "mapping": { - "analyzer": "keyword_lowercase", - "fields": { - "raw": { - "type": "keyword" - } - }, - "store": true, - "type": "text" - }, - "match": "expando__keyword__*", - "match_mapping_type": "string" - } - }, - { - "template_ar": { - "mapping": { - "analyzer": "arabic", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ar\\b|\\w+_ar_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_bg": { - "mapping": { - "analyzer": "bulgarian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_bg\\b|\\w+_bg_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_ca": { - "mapping": { - "analyzer": "catalan", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ca\\b|\\w+_ca_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_cs": { - "mapping": { - "analyzer": "czech", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_cs\\b|\\w+_cs_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_da": { - "mapping": { - "analyzer": "danish", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_da\\b|\\w+_da_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_de": { - "mapping": { - "analyzer": "german", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_de\\b|\\w+_de_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_el": { - "mapping": { - "analyzer": "greek", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_el\\b|\\w+_el_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_en": { - "mapping": { - "analyzer": "english", - "search_analyzer": "liferay_analyzer_en", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_en\\b|\\w+_en_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_es": { - "mapping": { - "analyzer": "spanish", - "search_analyzer": "liferay_analyzer_es", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_es\\b|\\w+_es_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_eu": { - "mapping": { - "analyzer": "basque", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_eu\\b|\\w+_eu_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_fi": { - "mapping": { - "analyzer": "finnish", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_fi\\b|\\w+_fi_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_fr": { - "mapping": { - "analyzer": "french", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_fr\\b|\\w+_fr_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_hi": { - "mapping": { - "analyzer": "hindi", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_hi\\b|\\w+_hi_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_hu": { - "mapping": { - "analyzer": "hungarian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_hu\\b|\\w+_hu_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_hy": { - "mapping": { - "analyzer": "armenian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_hy\\b|\\w+_hy_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_id": { - "mapping": { - "analyzer": "indonesian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_id\\b|\\w+_id_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_it": { - "mapping": { - "analyzer": "italian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_it\\b|\\w+_it_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_ja": { - "mapping": { - "analyzer": "liferay_kuromoji", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ja\\b|\\w+_ja_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_ko": { - "mapping": { - "analyzer": "cjk", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ko\\b|\\w+_ko_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_nl": { - "mapping": { - "analyzer": "dutch", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_nl\\b|\\w+_nl_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_no": { - "mapping": { - "analyzer": "norwegian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_nb\\b|\\w+_nb_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_pl": { - "mapping": { - "analyzer": "polish", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_pl\\b|\\w+_pl_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_pt": { - "mapping": { - "analyzer": "portuguese", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_pt\\b|\\w+_pt_PT\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_pt_br": { - "mapping": { - "analyzer": "brazilian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "*_pt_BR", - "match_mapping_type": "string" - } - }, - { - "template_ro": { - "mapping": { - "analyzer": "romanian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ro\\b|\\w+_ro_RO\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_ru": { - "mapping": { - "analyzer": "russian", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_ru\\b|\\w+_ru_RU\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_sv": { - "mapping": { - "analyzer": "swedish", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_sv\\b|\\w+_sv_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_th": { - "mapping": { - "analyzer": "thai", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_th\\b|\\w+_th_TH\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_tr": { - "mapping": { - "analyzer": "turkish", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_tr\\b|\\w+_tr_TR\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_zh": { - "mapping": { - "analyzer": "smartcn", - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "match": "\\w+_zh\\b|\\w+_zh_[A-Z]{2}\\b", - "match_mapping_type": "string", - "match_pattern": "regex" - } - }, - { - "template_ddmFieldArray_ddmFieldValueText": { - "mapping": { - "store": true, - "type": "text" - }, - "match_mapping_type": "string", - "path_match": "ddmFieldArray.ddmFieldValueText*" - } - }, - { - "template_ddm": { - "mapping": { - "store": true, - "type": "text" - }, - "match": "ddm__*", - "match_mapping_type": "string" - } - }, - { - "template_expando": { - "mapping": { - "store": true, - "type": "text" - }, - "match": "expando__*", - "match_mapping_type": "string" - } - } - ], - "properties": { - "ancestorOrganizationIds": { - "store": true, - "type": "keyword" - }, - "articleId": { - "analyzer": "keyword_lowercase", - "store": true, - "type": "text" - }, - "assetCategoryId": { - "store": true, - "type": "keyword" - }, - "assetCategoryIds": { - "store": true, - "type": "keyword" - }, - "assetInternalCategoryId": { - "store": true, - "type": "keyword" - }, - "assetInternalCategoryIds": { - "store": true, - "type": "keyword" - }, - "assetTagId": { - "store": true, - "type": "keyword" - }, - "assetTagIds": { - "store": true, - "type": "keyword" - }, - "assetTagNames": { - "fields": { - "raw": { - "type": "keyword" - } - }, - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "assetVocabularyId": { - "store": true, - "type": "keyword" - }, - "assetVocabularyIds": { - "store": true, - "type": "keyword" - }, - "classTypeId": { - "store": true, - "type": "keyword" - }, - "companyId": { - "store": true, - "type": "keyword" - }, - "configurationModelAttributeName": { - "store": true, - "type": "keyword" - }, - "configurationModelFactoryPid": { - "store": true, - "type": "keyword" - }, - "configurationModelId": { - "store": true, - "type": "keyword" - }, - "content": { - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "createDate": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "dataRepositoryId": { - "store": true, - "type": "keyword" - }, - "ddmContent": { - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "ddmFieldArray": { - "properties": { - "ddmFieldName": { - "type": "keyword" - }, - "ddmValueFieldName": { - "type": "keyword" - } - }, - "type": "nested" - }, - "ddmStructureKey": { - "store": true, - "type": "keyword" - }, - "ddmTemplateKey": { - "store": true, - "type": "keyword" - }, - "defaultLanguageId": { - "store": true, - "type": "keyword" - }, - "description": { - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "discussion": { - "store": true, - "type": "keyword" - }, - "displayDate": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "emailAddress": { - "store": true, - "type": "keyword" - }, - "emailAddressDomain": { - "store": true, - "type": "keyword" - }, - "endTime": { - "store": true, - "type": "long" - }, - "entryClassName": { - "store": true, - "type": "keyword" - }, - "entryClassPK": { - "store": true, - "type": "keyword" - }, - "expirationDate": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "extension": { - "store": true, - "type": "keyword" - }, - "fileEntryTypeId": { - "store": true, - "type": "keyword" - }, - "folderId": { - "store": true, - "type": "keyword" - }, - "geoLocation": { - "fields": { - "geopoint": { - "store": true, - "type": "keyword" - } - }, - "store": true, - "type": "geo_point" - }, - "groupId": { - "store": true, - "type": "keyword" - }, - "groupIds": { - "store": true, - "type": "keyword" - }, - "groupRoleId": { - "store": true, - "type": "keyword" - }, - "head": { - "store": true, - "type": "keyword" - }, - "hidden": { - "store": true, - "type": "keyword" - }, - "id": { - "store": true, - "type": "keyword" - }, - "languageId": { - "store": true, - "type": "keyword" - }, - "layoutUuid": { - "store": true, - "type": "keyword" - }, - "leftOrganizationId": { - "store": true, - "type": "keyword" - }, - "mimeType": { - "store": true, - "type": "keyword" - }, - "modified": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "nodeId": { - "store": true, - "type": "keyword" - }, - "organizationId": { - "store": true, - "type": "keyword" - }, - "organizationIds": { - "store": true, - "type": "keyword" - }, - "parentCategoryId": { - "store": true, - "type": "keyword" - }, - "parentCategoryIds": { - "store": true, - "type": "keyword" - }, - "parentOrganizationId": { - "store": true, - "type": "keyword" - }, - "path": { - "store": true, - "type": "keyword" - }, - "priority": { - "store": true, - "type": "double" - }, - "properties": { - "store": true, - "type": "keyword" - }, - "publishDate": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "readCount": { - "store": true, - "type": "keyword" - }, - "recordSetId": { - "store": true, - "type": "keyword" - }, - "removedByUser": { - "type": "keyword" - }, - "removedDate": { - "format": "yyyyMMddHHmmss", - "store": true, - "type": "date" - }, - "rightOrganizationId": { - "store": true, - "type": "keyword" - }, - "roleId": { - "store": true, - "type": "keyword" - }, - "roleIds": { - "store": true, - "type": "keyword" - }, - "rootEntryClassName": { - "store": true, - "type": "keyword" - }, - "rootEntryClassPK": { - "store": true, - "type": "keyword" - }, - "scopeGroupId": { - "store": true, - "type": "keyword" - }, - "screenName": { - "store": true, - "type": "keyword" - }, - "size": { - "store": true, - "type": "keyword" - }, - "status": { - "store": true, - "type": "keyword" - }, - "subtitle": { - "store": true, - "type": "text" - }, - "teamIds": { - "store": true, - "type": "keyword" - }, - "threadId": { - "store": true, - "type": "keyword" - }, - "title": { - "store": true, - "term_vector": "with_positions_offsets", - "type": "text" - }, - "treePath": { - "store": true, - "type": "keyword" - }, - "type": { - "store": true, - "type": "keyword" - }, - "uid": { - "store": true, - "type": "keyword" - }, - "userGroupId": { - "store": true, - "type": "keyword" - }, - "userGroupIds": { - "store": true, - "type": "keyword" - }, - "userId": { - "store": true, - "type": "keyword" - }, - "userName": { - "store": true, - "type": "keyword" - }, - "version": { - "store": true, - "type": "keyword" - }, - "visible": { - "store": true, - "type": "keyword" - } - } - } + "LiferayDocumentType": { + "date_detection": false, + "dynamic_templates": [ + { + "template_ddmFieldArray_ddmFieldValue_Number_sortable": { + "mapping": { + "scaling_factor": 1000, + "store": true, + "type": "scaled_float" + }, + "path_match": "ddmFieldArray.ddmFieldValue*Number_sortable" + } + }, + { + "template_long_sortable": { + "mapping": { + "store": true, + "type": "long" + }, + "match": "*_sortable", + "match_mapping_type": "long" + } + }, + { + "template_string_sortable": { + "mapping": { + "store": true, + "type": "keyword" + }, + "match": "*_sortable", + "match_mapping_type": "string" + } + }, + { + "template_geolocation": { + "mapping": { + "fields": { + "geopoint": { + "store": true, + "type": "keyword" + } + }, + "store": true, + "type": "geo_point" + }, + "match": "*_geolocation" + } + }, + { + "template_ddmFieldArray_ddmFieldValueKeyword": { + "mapping": { + "store": true, + "type": "keyword" + }, + "match_mapping_type": "string", + "path_match": "ddmFieldArray.ddmFieldValueKeyword*" + } + }, + { + "template_ddm_keyword": { + "mapping": { + "store": true, + "type": "keyword" + }, + "match": "ddm__keyword__*", + "match_mapping_type": "string" + } + }, + { + "template_expando_keyword": { + "mapping": { + "analyzer": "keyword_lowercase", + "fields": { + "raw": { + "type": "keyword" + } + }, + "store": true, + "type": "text" + }, + "match": "expando__keyword__*", + "match_mapping_type": "string" + } + }, + { + "template_ar": { + "mapping": { + "analyzer": "arabic", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ar\\b|\\w+_ar_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_bg": { + "mapping": { + "analyzer": "bulgarian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_bg\\b|\\w+_bg_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_ca": { + "mapping": { + "analyzer": "catalan", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ca\\b|\\w+_ca_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_cs": { + "mapping": { + "analyzer": "czech", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_cs\\b|\\w+_cs_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_da": { + "mapping": { + "analyzer": "danish", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_da\\b|\\w+_da_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_de": { + "mapping": { + "analyzer": "german", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_de\\b|\\w+_de_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_el": { + "mapping": { + "analyzer": "greek", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_el\\b|\\w+_el_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_en": { + "mapping": { + "analyzer": "english", + "search_analyzer": "liferay_analyzer_en", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_en\\b|\\w+_en_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_es": { + "mapping": { + "analyzer": "spanish", + "search_analyzer": "liferay_analyzer_es", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_es\\b|\\w+_es_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_et": { + "mapping": { + "analyzer": "estonian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_et\\b|\\w+_et_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_eu": { + "mapping": { + "analyzer": "basque", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_eu\\b|\\w+_eu_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_fa": { + "mapping": { + "analyzer": "persian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_fa\\b|\\w+_fa_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_fi": { + "mapping": { + "analyzer": "finnish", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_fi\\b|\\w+_fi_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_fr": { + "mapping": { + "analyzer": "french", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_fr\\b|\\w+_fr_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_gl": { + "mapping": { + "analyzer": "galician", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_gl\\b|\\w+_gl_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_hi": { + "mapping": { + "analyzer": "hindi", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_hi\\b|\\w+_hi_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_hu": { + "mapping": { + "analyzer": "hungarian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_hu\\b|\\w+_hu_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_hy": { + "mapping": { + "analyzer": "armenian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_hy\\b|\\w+_hy_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_in": { + "mapping": { + "analyzer": "indonesian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_in\\b|\\w+_in_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_it": { + "mapping": { + "analyzer": "italian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_it\\b|\\w+_it_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_ja": { + "mapping": { + "analyzer": "liferay_analyzer_ja", + "search_analyzer": "liferay_analyzer_search_ja", + "fields": { + "ngram": { + "type": "text", + "analyzer": "liferay_analyzer_ngram_ja", + "search_analyzer": "liferay_analyzer_search_ngram_ja" + } + }, + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ja\\b|\\w+_ja_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_ko": { + "mapping": { + "analyzer": "cjk", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ko\\b|\\w+_ko_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_lt": { + "mapping": { + "analyzer": "lithuanian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_lt\\b|\\w+_lt_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_nl": { + "mapping": { + "analyzer": "dutch", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_nl\\b|\\w+_nl_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_no": { + "mapping": { + "analyzer": "norwegian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_nb\\b|\\w+_nb_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_pl": { + "mapping": { + "analyzer": "polish", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_pl\\b|\\w+_pl_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_pt": { + "mapping": { + "analyzer": "portuguese", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_pt\\b|\\w+_pt_PT\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_pt_br": { + "mapping": { + "analyzer": "brazilian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "*_pt_BR", + "match_mapping_type": "string" + } + }, + { + "template_ro": { + "mapping": { + "analyzer": "romanian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ro\\b|\\w+_ro_RO\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_ru": { + "mapping": { + "analyzer": "russian", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_ru\\b|\\w+_ru_RU\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_sv": { + "mapping": { + "analyzer": "swedish", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_sv\\b|\\w+_sv_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_th": { + "mapping": { + "analyzer": "thai", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_th\\b|\\w+_th_TH\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_tr": { + "mapping": { + "analyzer": "turkish", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_tr\\b|\\w+_tr_TR\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_zh": { + "mapping": { + "analyzer": "smartcn", + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "match": "\\w+_zh\\b|\\w+_zh_[A-Z]{2}\\b", + "match_mapping_type": "string", + "match_pattern": "regex" + } + }, + { + "template_ddmFieldArray_ddmFieldValueText": { + "mapping": { + "store": true, + "type": "text" + }, + "match_mapping_type": "string", + "path_match": "ddmFieldArray.ddmFieldValueText*" + } + }, + { + "template_ddm": { + "mapping": { + "store": true, + "type": "text" + }, + "match": "ddm__*", + "match_mapping_type": "string" + } + }, + { + "template_expando": { + "mapping": { + "store": true, + "type": "text" + }, + "match": "expando__*", + "match_mapping_type": "string" + } + } + ], + "properties": { + "ancestorOrganizationIds": { + "store": true, + "type": "keyword" + }, + "articleId": { + "analyzer": "keyword_lowercase", + "store": true, + "type": "text" + }, + "assetCategoryId": { + "store": true, + "type": "keyword" + }, + "assetCategoryIds": { + "store": true, + "type": "keyword" + }, + "assetInternalCategoryId": { + "store": true, + "type": "keyword" + }, + "assetInternalCategoryIds": { + "store": true, + "type": "keyword" + }, + "assetTagId": { + "store": true, + "type": "keyword" + }, + "assetTagIds": { + "store": true, + "type": "keyword" + }, + "assetTagNames": { + "fields": { + "raw": { + "type": "keyword" + } + }, + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "assetVocabularyId": { + "store": true, + "type": "keyword" + }, + "assetVocabularyIds": { + "store": true, + "type": "keyword" + }, + "classTypeId": { + "store": true, + "type": "keyword" + }, + "companyId": { + "store": true, + "type": "keyword" + }, + "configurationModelAttributeName": { + "store": true, + "type": "keyword" + }, + "configurationModelFactoryPid": { + "store": true, + "type": "keyword" + }, + "configurationModelId": { + "store": true, + "type": "keyword" + }, + "content": { + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "createDate": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "dataRepositoryId": { + "store": true, + "type": "keyword" + }, + "ddmContent": { + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "ddmFieldArray": { + "properties": { + "ddmFieldName": { + "type": "keyword" + }, + "ddmValueFieldName": { + "type": "keyword" + } + }, + "type": "nested" + }, + "ddmStructureKey": { + "store": true, + "type": "keyword" + }, + "ddmTemplateKey": { + "store": true, + "type": "keyword" + }, + "defaultLanguageId": { + "store": true, + "type": "keyword" + }, + "description": { + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "discussion": { + "store": true, + "type": "keyword" + }, + "displayDate": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "emailAddress": { + "store": true, + "type": "keyword" + }, + "emailAddressDomain": { + "store": true, + "type": "keyword" + }, + "endTime": { + "store": true, + "type": "long" + }, + "entryClassName": { + "store": true, + "type": "keyword" + }, + "entryClassPK": { + "store": true, + "type": "keyword" + }, + "expirationDate": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "extension": { + "store": true, + "type": "keyword" + }, + "fileEntryTypeId": { + "store": true, + "type": "keyword" + }, + "fileExtension": { + "store": true, + "type": "text" + }, + "folderId": { + "store": true, + "type": "keyword" + }, + "geoLocation": { + "fields": { + "geopoint": { + "store": true, + "type": "keyword" + } + }, + "store": true, + "type": "geo_point" + }, + "groupId": { + "store": true, + "type": "keyword" + }, + "groupIds": { + "store": true, + "type": "keyword" + }, + "groupRoleId": { + "store": true, + "type": "keyword" + }, + "head": { + "store": true, + "type": "keyword" + }, + "hidden": { + "store": true, + "type": "keyword" + }, + "id": { + "store": true, + "type": "keyword" + }, + "languageId": { + "store": true, + "type": "keyword" + }, + "layoutUuid": { + "store": true, + "type": "keyword" + }, + "leftOrganizationId": { + "store": true, + "type": "keyword" + }, + "mimeType": { + "store": true, + "type": "keyword" + }, + "modified": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "nestedFieldArray": { + "properties": { + "fieldName": { + "type": "keyword" + }, + "valueFieldName": { + "type": "keyword" + }, + "value_binary": { + "type": "binary" + }, + "value_boolean": { + "type": "boolean" + }, + "value_date": { + "format": "yyyyMMddHHmmss", + "type": "date" + }, + "value_double": { + "type": "double" + }, + "value_integer": { + "type": "integer" + }, + "value_keyword": { + "type": "keyword" + }, + "value_keyword_lowercase": { + "normalizer": "lowercase", + "type": "keyword" + }, + "value_long": { + "type": "long" + }, + "value_text": { + "type": "text" + } + }, + "type": "nested" + }, + "nodeId": { + "store": true, + "type": "keyword" + }, + "organizationId": { + "store": true, + "type": "keyword" + }, + "organizationIds": { + "store": true, + "type": "keyword" + }, + "parentCategoryId": { + "store": true, + "type": "keyword" + }, + "parentCategoryIds": { + "store": true, + "type": "keyword" + }, + "parentOrganizationId": { + "store": true, + "type": "keyword" + }, + "path": { + "store": true, + "type": "keyword" + }, + "priority": { + "store": true, + "type": "double" + }, + "properties": { + "store": true, + "type": "keyword" + }, + "publishDate": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "readCount": { + "store": true, + "type": "keyword" + }, + "recordSetId": { + "store": true, + "type": "keyword" + }, + "removedByUser": { + "type": "keyword" + }, + "removedDate": { + "format": "yyyyMMddHHmmss", + "store": true, + "type": "date" + }, + "rightOrganizationId": { + "store": true, + "type": "keyword" + }, + "roleId": { + "store": true, + "type": "keyword" + }, + "roleIds": { + "store": true, + "type": "keyword" + }, + "rootEntryClassName": { + "store": true, + "type": "keyword" + }, + "rootEntryClassPK": { + "store": true, + "type": "keyword" + }, + "scopeGroupId": { + "store": true, + "type": "keyword" + }, + "screenName": { + "store": true, + "type": "keyword" + }, + "size": { + "store": true, + "type": "keyword" + }, + "status": { + "store": true, + "type": "keyword" + }, + "subtitle": { + "store": true, + "type": "text" + }, + "teamIds": { + "store": true, + "type": "keyword" + }, + "threadId": { + "store": true, + "type": "keyword" + }, + "title": { + "store": true, + "term_vector": "with_positions_offsets", + "type": "text" + }, + "treePath": { + "store": true, + "type": "keyword" + }, + "type": { + "store": true, + "type": "keyword" + }, + "uid": { + "store": true, + "type": "keyword" + }, + "userGroupId": { + "store": true, + "type": "keyword" + }, + "userGroupIds": { + "store": true, + "type": "keyword" + }, + "userId": { + "store": true, + "type": "keyword" + }, + "userName": { + "fields": { + "text": { + "type": "text" + } + }, + "store": true, + "type": "keyword" + }, + "version": { + "store": true, + "type": "keyword" + }, + "visible": { + "store": true, + "type": "keyword" + } + } + } } \ No newline at end of file