Skip to content

Instantly share code, notes, and snippets.

@jamilatta
Last active October 29, 2015 17:23
Show Gist options
  • Save jamilatta/db8365f329876b73a7de to your computer and use it in GitHub Desktop.
Save jamilatta/db8365f329876b73a7de to your computer and use it in GitHub Desktop.
Queries ES
# Query simples:
# Pesquisar por Journal by collection
# {
# "query": {
# "nested": {
# "path": "collections",
# "query": {
# "match": {
# "collections.acronym": "spa"
# }
# }
# }
# }
# }
s = Search(index=config.INDEX).query("nested", path="collections", query=Q("match", collections__acronym="spa"))
r = s.execute()
for hit in r:
print(hit.meta.score, hit.title)
print json.dumps(s.to_dict())
# Pesquisar por um journal através do jid ou PID
print 80 * '*'
print "Get Journal by jid... "
s = Search(index=config.INDEX).query("match", jid="2e9f927cf7df4a9a9b3597fa49158e13")
r = s.execute()
for hit in r:
print(hit.meta.score, hit.title)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("match", jid="2e9f927cf7df4a9a9b3597fa49158e13")'
# Pesquisar por um issue através do iid ou PID
print 80 * '*'
print "Get Issue by iid... "
s = Search(index=config.INDEX).query("match", iid="5ed510ccf03946ff8b9665a5468279f6")
r = s.execute()
for hit in r:
print(hit.meta.score, hit.label)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("match", iid="5ed510ccf03946ff8b9665a5468279f6")'
# Pesquisar por um article através do iid ou PID
print 80 * '*'
print "Get Article by aid... "
s = Search(index=config.INDEX).query("match", aid="ef9f8a8fd2f04308aac552c9ab39d1ff")
r = s.execute()
for hit in r:
print(hit.meta.score, hit.aid)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("match", aid="ef9f8a8fd2f04308aac552c9ab39d1ff")'
# Pesquisar atraves do jid de um journal seus issues
print 80 * '*'
print "Get Issues by journal using jid... using size=1000"
s = Search(index=config.INDEX).query("has_parent", parent_type="journal", query=Q("term", jid="e12fc1ffb85d4ec09b6fc60f9da56200")).sort("-year", "-volume", "-number")
s = s[:1000] # Using from=0 and size=1000
r = s.execute()
for hit in r:
# print hit
print(hit.meta.score, hit.iid, hit.label, hit.year)
print "DSL: %s" % json.dumps(s.to_dict())
print "Elasticsearch_dsl: %s" % 'query("has_parent", parent_type="journal", query=Q("term", jid="e12fc1ffb85d4ec09b6fc60f9da56200"))'
# Pesquisar atraves do iid (issue) o seu pai journal
print 80 * '*'
print "Get Journal by issue using iid..."
# Pesquise pelo pai onde o filho é um issue e tem como atributo o iid="5ed510ccf03946ff8b9665a5468279f6"
s = Search(index=config.INDEX).query("has_child", type="issue", query=Q("term", iid="5ed510ccf03946ff8b9665a5468279f6"))
r = s.execute()
for hit in r:
print(hit.meta.score, hit.jid)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("has_child", type="issue", query=Q("term", iid="5ed510ccf03946ff8b9665a5468279f6"))'
# Pesquisar atraves do iid de um issue seus articles
print 80 * '*'
print "Get Articles by issue using iid..."
s = Search(index=config.INDEX).query("has_parent", parent_type="issue", query=Q("term", iid="3c2738f9409441958fd15e74c67e0209"))
r = s.execute()
for hit in r:
print(hit.meta.score, hit.aid)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("has_parent", type="issue", query=Q("term", iid="3c2738f9409441958fd15e74c67e0209"))'
# Pesquisar atraves do iid (issue) o seu pai journal
print 80 * '*'
print "Get Isssue by article using aid..."
# Pesquise pelo pai onde o filho é um issue e tem como atributo o iid="5ed510ccf03946ff8b9665a5468279f6"
s = Search(index=config.INDEX).query("has_child", type="article", query=Q("term", aid="ef9f8a8fd2f04308aac552c9ab39d1ff"))
r = s.execute()
for hit in r:
print(hit.meta.score, hit.iid)
print "DSL: %s" % s.to_dict()
print "Elasticsearch_dsl: %s" % 'query("has_child", type="article", query=Q("term", aid="ef9f8a8fd2f04308aac552c9ab39d1ff"))'
@jfunez
Copy link

jfunez commented Oct 29, 2015

lista alfabética de periódicos da coleção Saúde Pública (spa)

GET iopac3/_search

{
    "sort": [
        "acronym"
    ],
    "query": {
        "nested": {
            "query": {
                "match": {
                    "collections.acronym": "spa"
                }
            },
            "path": "collections"
        }
    },
    "fields": [
        "title",
        "acronym"
    ],
    "from": 0,
    "size": 1000
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment