pysolr este un client Python usor pentru Apache Solr. Ofera o interfata care interoga serverul si returneaza rezultatele pe baza interogarii.

stare

Jurnal de schimbari

Caracteristici

  • Operatiuni de baza, cum ar fi selectarea, actualizarea si stergerea.
  • Optimizarea indexului.
  • Suport „Mai mult ca acesta” (daca este configurat in Solr).
  • Corectarea ortografiei (daca este configurata in Solr).
  • Suport de expirare.
  • Constientizarea SolrCloud

Cerinte

  • Python 2.7 – 3.7
  • Solicitari 2.9.1+
  • Optional – simplejson
  • Optional – kazoo pentru modul SolrCloud

Instalare

pysolr este pe PyPI:

Sau daca doriti sa instalati direct din depozit:

$ python setup.py instalare

Utilizare

Utilizarea de baza arata ca:

# Daca pe Python 2.X din __future__ import print_function import pysolr # Creati o instanta client. Optiunile de expirare si autentificare nu sunt necesare. solr = pysolr.Solr (‘http: // localhost: 8983 / solr /’, always_commit = True, [timeout = 10], [auth = <tip de autentificare>]) # Retineti ca auto_commit implicit este False pentru performanta. Puteti seta # “auto_commit = True” pentru ca comenzile sa actualizeze intotdeauna indexul imediat, sa efectuati # un apel de actualizare cu „commit = True” sau sa utilizati „autoCommit” / „commitWithin” Solr pentru ca datele dvs. sa fie angajate in urma unui anumit anume politica. # Efectuati un control de sanatate. solr.ping () # Cum ati indexa datele. solr.add ([{“id”: “doc_1”, “title”: “Un document de testare”,}, {“id”: “doc_2”, “title”: “Banana: gustoasa sau periculoasa?”, ” titlu ‘])) # Pentru o interogare mai avansata, sa presupunem implicarea evidentierii, puteti transmite # optiuni suplimentare catre Solr. results = solr.search (‘banane’, ** {‘hl’: ‘true’, ‘hl.fragsize’: 10,}) # Treceti un cursor folosind iteratorul sau: pentru doc ​​in solr.search (‘*: * ‘, fl =’ id ‘, sort =’ id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari More Like This, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi … solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’) titlu ‘])) # Pentru o interogare mai avansata, sa presupunem implicarea evidentierii, puteti transmite # optiuni suplimentare catre Solr. results = solr.search (‘banane’, ** {‘hl’: ‘true’, ‘hl.fragsize’: 10,}) # Treceti un cursor folosind iteratorul sau: pentru doc ​​in solr.search (‘*: * ‘, fl =’ id ‘, sort =’ id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari More Like This, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi … solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’) results = solr.search (‘banane’, ** {‘hl’: ‘true’, ‘hl.fragsize’: 10,}) # Treceti un cursor folosind iteratorul sau: pentru doc ​​in solr.search (‘*: * ‘, fl =’ id ‘, sort =’ id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari More Like This, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi ..

danna paola desnuda porno gay españoles
gays haciendo el amor inciesto español
sexo muy duro gorditas tetonas
anal maduras españolas rebeca linares masaje
gay se la chupa a hetero corridas a chorro
jovencitos follando con maduras corriendose dentro
porno argumento peliculas porno gay en español
videos pornos de abuelas concursos nudistas
orgias rusas videos porno subtitulados
lesbianas incesto ariana grande porno
mujeres peludas follando trio con mi esposa
comic maduras incesto real xxx
chochitos jovenes incestos lesbicos
folladas en la cocina follada real
rusas desnudas www.sex
porno online corridas en el culo
videos travestis travestis maduras
maduras insaciables pornovideo
madres xxxx asiatica forzada
videos pornos caseros reales muy jovencitas porno

. solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’) results = solr.search (‘banane’, ** {‘hl’: ‘true’, ‘hl.fragsize’: 10,}) # Treceti un cursor folosind iteratorul sau: pentru doc ​​in solr.search (‘*: * ‘, fl =’ id ‘, sort =’ id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari More Like This, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi … solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’) id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari Mai mult ca acesta, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi … solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’) id ASC ‘, cursorMark =’ * ‘): print (doc [‘ id ‘]) # Puteti efectua, de asemenea, cautari Mai mult ca acesta, daca Solr-ul dvs. este configurat # corect. similar = solr.more_like_this (q = ‘id: doc_2’, mltfl = ‘text’) # In cele din urma, puteti sterge fie documente individuale, solr.delete (id = ‘doc_1’) #, de asemenea, in loturi … solr.delete (id = [‘doc_1’, ‘doc_2’]) # … sau toate documentele. solr.delete (q = ‘*: *’)

# Pentru modul SolrCloud, initializati Solr-ul astfel: zookeeper = pysolr.ZooKeeper (“zkhost1: 2181, zkhost2: 2181, zkhost3: 2181”) solr = pysolr.SolrCloud (zookeeper, “collection1”, auth = <tip de autentificare> )

Indicele multicore

Pur si simplu indreptati adresa URL catre nucleul indexului:

# Configurati o instanta Solr. Expirarea este optionala. solr = pysolr.Solr (‘http: // localhost: 8983 / solr / core_0 /’, timeout = 10)

Manipulatori de solicitari personalizate

# Configurati o instanta Solr. Slash-ul final este optional. solr = pysolr.Solr (‘http: // localhost: 8983 / solr / core_0 /’, search_handler = ‘/ completare automata’, use_qt_param = False)

Daca use_qt_param este adevarat, este esential ca numele handlerului sa fie exact ceea ce este configurat in solrconfig.xml, inclusiv slash-ul principal daca exista. Daca use_qt_param este False (implicit), barele de intampinare si cele finale pot fi omise.

Daca nu este specificat cautarea_handler, pysolr va selecta / selecta implicit.

Handlerele pentru MoreLikeThis, Update, Terms etc. toate sunt implicite la valorile setate in SOLR solrconfig.xml SOLR se livreaza cu: mlt, update, terms etc. Metodele specifice ale clasei Solr a pysolr (cum ar fi more_like_this, suggest_terms etc.) permit o handler kwarg pentru a suprascrie acea valoare. Aceasta include metoda de cautare. Setarea unui handler in cautare suprascrie in mod explicit setarea search_handler (daca exista).

Autentificare personalizata

# Configurati o instanta Solr intr-un mediu kerborizat din importuri requests_kerberos import HTTPKerberosAuth, OPTIONAL kerberos_auth = HTTPKerberosAuth (mutual_authentication = OPTIONAL, sanitize_mutual_error_response = False) solr = pysolr.Solr (‘http: // localhost:’
# Configurati o instanta CloudSolr intr-un mediu kerborizat de la cererile_kerberos import HTTPKerberosAuth, OPTIONAL kerberos_auth = HTTPKerberosAuth (mutual_authentication = OPTIONAL, sanitize_mutual_error_response = False) zookeeper = pysolr.ZooKeeper (“21, zhk1: 2181 “) solr = pysolr.SolrCloud (zookeeper,” collection “, auth = kerberos_auth)

Daca serverele dvs. Solr ruleaza https

# Configurati o instanta Solr intr-un mediu https solr = pysolr.Solr (‘http: // localhost: 8983 / solr /’, verify = path / to / cert.pem)
# Configurati o instanta CloudSolr intr-un mediu kerborizat zookeeper = pysolr.ZooKeeper (“zkhost1: 2181 / solr, zkhost2: 2181, …, zkhostN: 2181”) solr = pysolr.SolrCloud (zookeeper, “colectie”, verifica = cale /to/cert.perm)

Politica de angajare personalizata

# Configurati o instanta Solr. Slash-ul final este optional. # Toate cererile catre Solr vor fi angajate imediat deoarece „always_commit = True”: solr = pysolr.Solr (‘http: // localhost: 8983 / solr / core_0 /’, search_handler = ‘/ autocomplete’, always_commit = True)

always_commit semnaleaza obiectului Solr fie sa comita fie sa nu comita in mod implicit pentru orice solicitare solr. Asigurati-va ca schimbati acest lucru in True daca faceti upgrade de la o versiune in care politica implicita a fost intotdeauna validata implicit.

Functiile precum adaugarea si stergerea ofera totusi o modalitate de a suprascrie valoarea implicita prin trecerea commit kwarg.

In general, este o buna practica sa limitati cantitatea de angajamente catre Solr, deoarece angajamentele excesive risca sa deschida prea multi cautatori sau sa consume un consum excesiv de resurse ale sistemului. Consultati documentatia Solr pentru mai multe informatii si detalii despre optiunile autoCommit si commitWithin:

https://lucene.apache.org/solr/guide/7_7/updatehandlers-in-solrconfig.html#UpdateHandlersinSolrConfig-autoCommit

LICENTA

pysolr este licentiat sub licenta New BSD.

Contribuind la pysolr

Pentru coerenta, acest proiect foloseste pre-commit pentru a gestiona carlige de commit Git:

  1. Instalati pachetul de pre-commit: de exemplu, pre-commit de instalare brew, pre-commit de instalare pip etc.
  2. Rulati instalarea pre-commit de fiecare data cand verificati o noua copie a acestui depozit Git pentru a va asigura ca fiecare commit ulterior va fi procesat executand rularea pre-commit, lucru pe care il puteti face si dupa cum doriti. Pentru a testa intregul depozit sau intr-un scenariu CI, puteti verifica fiecare fisier, mai degraba decat cele etapizate, utilizand pre-commit run –all.

Teste de alergare

Scriptul run-tests.py va efectua automat pasii de mai jos si este recomandat pentru testare in mod implicit, cu exceptia cazului in care aveti nevoie de mai mult control.

Rularea unei instante Solr de test

Descarcarea, configurarea si rularea Solr 4 arata astfel:

./start-solr-test-server.sh

Rularea testelor

$ python -m teste unittest