Appunti Solr

Per crearsi una collezione:

– Copiarsi in un folder, che era vuoto, locale
( ad esempio /home/tizio/conf )
tutto il contenuto del folder
/home/tizio/solr-6.6.0/server/solr/configsets/basic_configs/conf

– Nel folder, che mi ero riempito ( ad esempio era /home/tizio/conf )
sovrascrivere il file managed-schema.xml (oppure schema.xml se la collezione già esisteva,
prima di essere cancellata, e lo schema aveva questo nome)
con quello della mia collezione
(ovviamente se la collezione era stata cancellata, bisognava
aver fatto un backup del contenuto del file schema.xml e solrconfig.xml
e mettere solo questi 2 files poi nella directory /home/tizio/conf )
che si trova sulla console di amministrazione come schema.xml )

 

– Per creare la collezione,
fare questi comandi (esempio):

prima bisogna registrarla a zookeper
mediante questi due comandi:

/home/tizio/solr-6.6.0/server/scripts/cloud-scripts/zkcli.sh -cmd upconfig -zkhost localhost:9983 -confdir /home/tizio/conf -confname esempiocollezione

/home/tizio/solr-6.6.0/server/scripts/cloud-scripts/zkcli.sh -cmd linkconfig -zkhost localhost:9983 -collection esempiocollezione -confname esempiocollezione

 

Nei due suddetti comandi, per sapere dove è l’address
di zookeper, fare come segue:

andare alla pagina di amministrazione di solr (in uno dei nodi slave) nella sezione
“Dashboard” , per esempio nel caso mio notebook
vado all’indirizzo:
http://localhost:8985/solr/#/ (infatti io ho il master sulla porta 8983 , mentre uno dei due slave è sulla porta 8985 )

su questa pagina vedo che c’è un parametro che si chiama (è in grigetto), ad esempio:
-DzkHost=localhost:9983

il suddetto è proprio l’address di zookeper.

Poi per creare la struttura della collezione dare il comando:

curl ‘http://127.0.0.1:8983/solr/admin/collections?

action=CREATE&name=esempiocollezione&numShards=3&replicationFactor=2&

collection.configName=esempiocollezione&maxShardsPerNode=2′

 

———————————-

PRIMA DI CANCELLARE UNA COLLEZIONE COME
SI FA IL BACKUP DELLA COLLEZIONE

con questo comando:
vedi anche:
https://lucene.apache.org/solr/guide/6_6/making-and-restoring-backups.html

ATTENZIONE, PER SICUREZZA PRIMA DI FARE UN BACKUP FARE LA COMMIT
SU SOLR:
http://localhost:8983/solr/esempiocollezione/update?commit=true

ATTENZIONE I SEGUENTI COMANDI DI BACKUP E RESTORE NON SONO SICURO FUNZIONINO SEMPRE BENE, PER MAGGIORI DETTAGLI VEDERE LA DOCUMENTAZIONE UFFICIALE  in

https://lucene.apache.org/solr/guide/6_6/making-and-restoring-backups.html

il comando è:
http://localhost:8983/solr/esempiocollezione/replication?command=backup&location=/home/tizio/solr-backup-esempiocollezione

(attenzione, nel suddetto comando solr-backup-esempiocollezione all’inizio
deve essere una directory già esistente e vuota).

Poi dopo per fare il restore del backup, il comando è:

http://localhost:8983/solr/esempiocollezione/replication?command=restore&location=/home/tizio/solr-backup-esempiocollezione

 

IMPORTANTE!!!! PER VERIFICARE CHE POI C’E’
TUTTO NELLA COLLEZIONE FARLO CON CURL
TRAMITE IL COMANDO (ESEMPIO):
curl ‘http://localhost:8983/solr/esempiocollezione/select?indent=on&q=*:*&wt=json’

———————————-
PER INVECE CANCELLARE UNA COLLEZIONE A CALDO
FARSI PRIMA UN BACKUP di managed-schema.xml
e solrconfig.xml
mentre gli altri rimanenti files si possono prendere
da
/home/tizio/solr-6.6.0/server/solr/configsets/basic_configs/conf )
tutti i suddetti files metterseli su un proprio folder personale, ad esempio
/home/tizio/conf

– A questo punto si può
cancellare a caldo la collection tramite
il comando
http://localhost:8983/solr/admin/collections?action=DELETE&name=nomecollezione

 

Per esempio do il comando (se la collezione si chiama esempiocollezione ):

http://localhost:8983/solr/admin/collections?action=DELETE&name=esempiocollezione

 

————-
NOTE:

da
https://lucene.apache.org/solr/guide/6_6/uploading-data-with-index-handlers.html

UPDATE CON XML PER AGGIUNGERE NUOVI DOC A UNA COLLECTION,
esempio:

 

Using curl to Perform Updates

You can use the curl utility to perform any of the above commands, using its –data-binary option to append the XML message to the curl command, and generating a HTTP POST request. For example:

curl http://localhost:8983/solr/my_collection/update -H “Content-Type: text/xml” –data-binary ‘
<add>
<doc>
<field name=”id”>111</field>
<field name=”pippo”>contenuto111</field>
<field name=”pippo_s”>contenutopippo_s2111</field>
<field name=”f1_i”>f1_i_111</field>

</doc>
</add>’

 

curl http://localhost:8983/solr/my_collection/update -H “Content-Type: text/xml” –data-binary ‘
<add>
<doc>
<field name=”id”>111</field>
<field name=”pippo”>contenuto111</field>
<field name=”pippo_s”>contenutopippo_s2111</field>
<field name=”f1_i”>f1_i_111</field>

</doc>
</add>’

——————————–

PER l’ INSERIMENTO DOCUMENTI TRAMITE JSON
(PIU’ PRATICO IN QUANTO SI PUO’ PRENDERE
IL RISULTATO DI UNA QUERY DI UN’ ALTRA COLLEZIONE
CHE HA LA STESSA STRUTTURA):

Ad esempio se la query da (dopo i “docs”) questo:
“docs”:[
{
“id”:”111″,
“pippo”:[“contenuto111”],
“pippo_s”:”contenutopippo_s2111″,
“_version_”:1583400423243382784},
{
“id”:”222″,
“pippo”:[“Valore_pippo222”],
“pluto”:[222],
“pippo_s”:”nuovo valore pippo222″,
“f1_i”:222,
“_version_”:1583400535234445312}]
}}

Per inserire per esempio 1 nuovo documento, allora
predere l’output suddetto dalla prima parentesi graffa aperta
(solo ad esempio il primo documento, escludendo il campo “_version_”,
e chiudendo prima la parentesi graffa) ottenendo per cui:

{
“id”:”111″,
“pippo”:[“contenuto111”],
“pippo_s”:”contenutopippo_s2111″
}

 

 

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

w

Connessione a %s...


%d blogger hanno fatto clic su Mi Piace per questo: