Page History
Concept
When searching for information, only information that is persisted is taken into account. Data is persisted using Aggregates (More information on this can be found in the Persistency Management guide). When modeling your domain, it often occurs that you want to store information in different aggregates, that relate to each other. See the left side of the diagram below. The topmost aggregate could be information that belongs to a case. The aggregate that is linked to it could be contact information of a person. This is stored separately as it can be re-used in different cases. When searching for the name of a person, you may not only want to find the person aggregates that match, but also the cases that this person is involved in. So references between aggregates should be taken into account when searching. For documents that are attached to an aggregate, the same principle holds. This leads to that a complex structure of aggregates that reference other aggregates or documents is translated to a single index entry. Now OracleText is able to use the index to find the most relevant entries.
Preconditions
In order to be able to search for your data you need to make sure to take care of the following points:
- Obtain a license that includes search possibilities.
- Setup an Oracle database so that OracleText can be used.
- Define a connection to the Oracle database in the aquima.properties file
- Example:
connection.search_dev.sql.type=jdbc
connection.search_dev.sql.url=jdbc:oracle:thin:@servername:portname:xe
connection.search_dev.sql.driver=oracle.jdbc.driver.OracleDriver
connection.search_dev.sql.username=username
connection.search_dev.sql.password=password
- Example:
- Set the correct dialect for the oracle database in the aggregatedao.hibernate.properties
- Example:
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
- Example:
- Enable search in the aquima properties
- aggregate.dao.fulltext=true
- Define in the aquima.properties that aggregate actions create entries in the oracle connection, so that these can be indexed.
- aggregate.dao.jdbc.connection=search_dev
Basic Modeling
Searching for your case
Technical Information