Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

This article will give a few examples of doing direct-to-Elasticsearch queries. This is normally not necessary and not advised as queries should be done through the Swarm Search API.

Preparation

  • Set a Swarm Node IP as SCSP_HOST, Elasticsearch IP and the Elasticsearch Index variables. These presume the Support tools are installed at /root/dist

export SCSP_HOST=<any Swarm node>
export ESIP=$(python /root/dist/platform-get-default-search-feed-ip.py $SCSP_HOST | awk '{ print $1 }')
export ESINDEX=index_$(python /root/dist/platform-get-default-search-index-name.py $SCSP_HOST)

Calls direct to ES

ES information by stream name

FILENAME=<filename> && curl -s "$ESIP:9200/$ESINDEX/_search?q=stype:NAMED+AND+name:$FILENAME&pretty" | jq  -r '.hits.hits[]'
  • This will return all named streams by that name across buckets/ domains. You can delineate by bucket or domain id as seen in other examples.

ES information by etag

ETAG=<etag> && curl -s "$ESIP:9200/$ESINDEX/_search?pretty&q=etag:$ETAG" | jq '.hits.hits[]'

Get Domain id

from Swarm

DOMAIN=<domain name> && curl -sIL $SCSP_HOST?domain=$DOMAIN | grep ^Etag | awk '{ print $2 }' | sed 's/"//g'

from ES directly

DOMAIN=domain-for-versioning && curl -s "$ESIP:9200/$ESINDEX/_search?q=stype:DOMAIN+AND+name:$DOMAIN&pretty" | jq -r '.hits.hits[]._source.etag'

Get Bucket id

from Swarm by domain name

BUCKET=<bucket name> && DOMAIN=<domain name> && curl -sIL "$SCSP_HOST/$BUCKET?domain=$DOMAIN" | grep ^Etag | awk '{ print $2 }' | sed 's/"//g'

from ES directly- by domain id

BUCKET=<bucket name> && DOMAINID=<domainid> && curl -s "$ESIP:9200/$ESINDEX/_search?q=domainid:$DOMAINID+AND+stype:BUCKET+AND+name:$BUCKET&pretty" | jq  -r '.hits.hits[]._source.etag'
  • You can remove the name:domain-for-versioning if you know the bucket name is unique among domains. You can leave it off if you aren't sure but might get multiple results to sort through.

Stream count/ listing by contextid (bucket)

CONTEXTID=<contextid> && curl -s "$ESIP:9200/$ESINDEX/_search?pretty&q=contextid:$CONTEXTID" | jq '.hits.total.value'

  • No labels