#----------------------------------
#configuration for Freetext Search
#----------------------------------

# The URL is required to ask for search results and put documents to
# The port 9200 is ElasticSearch's default port for the RESTful API
elasticsearch.url = http://localhost:9200/

# Specifies the maximum number of results per source returned by the query endpoint.
businessobjects.query.maxresultspersource=1001


# ------------------------------
# configuration for freetextindexer
# ------------------------------
# Whether the FreetextSearch should be active or not (true|false). The default value is false.
# If the parameter is set to false. It cannot be overwritten in the service.xml
freetext.active=false

# All other parameters for freetextindexer can be overwritten by their datasource specific values from service.xml.
# For avalon the nameservice and servicename of the ODS service is used.

#Avalon: How often the server is polled for new notifications
freetext.pollingInterval=5000

#Peak: The URL where the notification service is running. 
#If running multiple ODS servers this parameter should be overwritten in service.xml
freetext.notificationUrl=http://localhost:8089/api

#Peak: a name for the registration. This ensures that missed notifications are delivered
#after reregistration 
freetext.notificationName=someUniqueName


# ------------------------------
# configuration for file release process (PAK2RAW and PAK2ATFX)
# ------------------------------

#filerelease.converter.raw.pakInputEntity=<ENTITY FOR PAK INPUT PATH FOR RAW CONVERTER>
#filerelease.converter.raw.pakInputAttribute=<ATTRIBUTE FOR PAK INPUT PATH FOR RAW CONVERTER>
#filerelease.converter.pak.pakInputEntity=<ENTITY FOR PAK INPUT PATH FOR ATFX CONVERTER>
#filerelease.converter.pak.pakInputAttribute=<ATTRIBUTE FOR PAK INPUT PATH FOR ATFX CONVERTER>
#filerelease.converter.pak.pakApplicationPath=<PATH TO PAK APPLICATION (EXE)>
#filerelease.converter.pak.modelTypeEntity=<ENTITY FOR PAK MODEL DEFINITION FOR RAW CONVERTER>
#filerelease.converter.pak.modelTypeAttribute=<ATTRIBUTE FOR PAK MODEL DEFINITION FOR RAW CONVERTER>
#filerelease.converter.target.root.d