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. Read more about how to exclude data from being indexed here
- 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!
- Elasticsearch 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.
Configuration¶
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