Elasticsearch and the search index¶
All data that shall be searchable in a Lime CRM application must have an index in Elasticsearch.
Data that is not indexed will not be possible to find from the global search in the webclient.
Changes to the database structure¶
If a properties (also called field) on a limetype (table) is changed, deleted or added in LISA, a reindex of that limetype is required, otherwise undefined errors might occur.
If a new property (field) is added, it will be indexed and considered to
be of type string
. This means that if you add a new option field, that
field will be considered to be a string in Elasticsearch, which in
turn will lead to undefined behaviors.
Search results¶
When searching in the web client, the results are boosted depending on:
Limetype (Table) labels
Property (Field) labels
This means that a match in the search query on a limetype with a limetype label and in a property with a property label is more likely to get a higher boost, and be presented higher in the search result list.
The following property types are possible to search for in the web client:
text properties
option properties
relation properties
Relation properties¶
It’s possible to search for information in related objects. However, it’s only the descriptive of a related limeobject that is indexed together with the object. This means that it’s important to set labels on all limeobjects limetypes that you want to have related information from.
What this means is that if you search for a deal connected to “Company A”, you may get a search hit for “Company A”, if the deals label is set to name.
The following labels are used to generate descriptives:
See also
See also the chapter about descriptives in the doc for lime-core:lime_type for more info.
Command-line commands¶
The search index is handled via the command-line tool limefu. Below is a description of the different commands that can be run.
Remember that you can always ask a command how it works by affixing it with –help.