Elasticsearch (Lime CRM Search Engine)¶
Elasticsearch is a search engine optimized for full-text searches and and is used for finding data quickly in Lime CRM. Relational databases (such as Microsoft SQL Server) systems aren't designed for that kind of tasks.
The concept of columns and rows doesn't exist in Elasticsearch. Instead, Elasticsearch stores its data in documents. All data in a document that shall be searchable is indexed and put in a search index in Elasticsearch.
Learn more about working with index with limefu
Tips and tricks¶
- Indexing is a time consuming and CPU intensive process. To index a big table can take several hours.
- Only index data that gives customer value. This means that you should only index data that the customer needs to find via the global search.
- Less is more. If too much data is indexed, the search results in the global search will be less accurate. Remember one of our core values - Keep it simple!
- Elastic search keeps as much of it's index in-memory as possible. That means that a large index will require a lot of memory on the server running Elasticsearch.
- Changes to the database structure often requires a reindex operation. This means that if you add, edit or delete a field in Lisa a reindex might be needed.
Default protocol and port is HTTP over port 9200. Connection options to Elastic can be configured in the enviroment configuration
# config.yaml search: elasticsearch: host: localhost port: 9200 use_ssl: False verify_certs: False