Determine if any elasticsearch entries are missing the "paths" field

Swarm 15 introduced the setting search.enableDelimiterPaths=True so that the elasticsearch index when a search feed is first created will have a new paths field. That allows for faster delimiter listings when gateway.cfg has [folder_listings] usePaths=true (Gateway Configuration | [folder_listings] ). Starting with Gateway 8.0.3 usePaths=true is the default though it’s only in effect when ?prefix is not specified or contains a small number of pseudo-directories.

Gateway 8 will log a warning if usePaths is ignored due to any entries in the elasticsearch index missing the field. Unfortunately Gateway 7 could log a false warning. This can happen if the search feed was created before search.enableDelimiterPaths was True or if it was temporarily changed to False while adding/updating objects.

 Instructions

You must have access to the elasticsearch endpoint, which should only be available on the internal storage network.

  1. Choose an elasticesarch node name or ip from the Search Feed.

  2. Note the Swarm cluster.name and search feed id (the first is 0).

  3. Issue this curl:

    curl -H 'Content-type: application/json' 'ELASTICSEARCH-HOST:9200/index_CLUSTER-NAME0/_search?pretty&size=100' --data-binary ' { "query": { "bool": { "must": { "terms": { "stype": [ "NAMED" ] } }, "must_not": { "exists": { "field": "paths.p1" } } } } }'
  4. If any entries are returned they prevent the use of usePaths=true.

A new search feed must be created if any entries are found. Refreshing the feed will not add the paths field to existing entries.

 Related articles

Filter by label

There are no items with the selected labels at this time.

© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.