If Smart Filters can not be trained on a Squirro installation, this may be due to installing the Squirro storage and cluster nodes in the wrong order.
Symptoms
You create new Smart Filters with some training. Yet no features are learned, and the "Fingerprint" tab on the advanced settings remains empty.
In the log file /var/log/squirro/fingerprint/fingerprint.log
you may see the following error message:
WARNING unable to analyze text u'…' for language u'en': IndexOperationError(400, … u'reason': u'failed to find analyzer [en]'}})
Solution
To solve this, two Elasticsearch indices have to be re-created: squirro_v7
and squirro_v7_fp
.
Run the following commands for both indices. All of these commands are executed on a storage node.
Verify, that the index has a problem:
$ curl -XGET localhost:9200/{INDEX_NAME}/_settings?pretty=json { "squirro_v7_fp" : { "settings" : { "index" : { "creation_date" : "1485956094617", "number_of_shards" : "3", "number_of_replicas" : "0", "uuid" : "DAMCDUeBTGKgEUEK1Mx9fQ", "version" : { "created" : "2020099" } } } } }
In this example, you get a relatively short output. This indicates, that the configuration is incomplete. If you get a much larger output from this command, your index is most likely fine.
If the previous command confirmed, that there is an issue, then run the following two commands:
$ curl -XDELETE localhost:9200/{INDEX_NAME} $ curl -XPUT localhost:9200/{INDEX_NAME}