Smart Filters Showing as Empty#

If Smart Filters cannot be trained on a Squirro installation, this may be due to the Squirro storage and cluster nodes having been installed 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.

  1. 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.

  2. 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}