/python-pysolr-usage

Python pysolr usage

Primary LanguageShell

Python pysolr usage

Contents

System environment

  • Solr 8.8.2

Install pysolr

pip install pysolr

Imports

import os

import pysolr

Parameters

SOLR_URL = os.environ.get("SOLR_URL")

Init the connection

solr = pysolr.Solr(SOLR_URL, always_commit=True)

Add documents

solr.add([
    {
        "id": "doc_1",
        "title": "A test document",
    },
    {
        "id": "doc_2",
        "title": "The Banana: Tasty or Dangerous?",
        "_doc": [
            { "id": "child_doc_1", "title": "peel" },
            { "id": "child_doc_2", "title": "seed" },
        ]
    },
])

Search

Simple query:

results = solr.search('title:Banana')

More advanced query:

results = solr.search('title:Banana', **{
    'hl': 'true',
    'hl.fragsize': 10,
})
print("Saw {0} result(s).".format(len(results)))
for result in results:
    print("The title is '{0}'.".format(result['title']))

Traverse a cursor using its iterator

for doc in solr.search('*:*',fl='id',sort='id ASC',cursorMark='*'):
    print(doc['id'])

Find similar documents

similar = solr.more_like_this(q='id:doc_2', mltfl='text')
similar

Delete

solr.delete(id='doc_1')
solr.delete(id=['doc_1', 'doc_2'])
solr.delete(q='*:*')

References

  1. https://github.com/django-haystack/pysolr/