Tasca #3977
obertResultats diferents amb cometes de la cerca simple i l'avançada
Descripció
Hi ha un error en el comportament de les cometes (sí, la nostra creu particular...) a la cerca avançada. Sembla que allò que no li agrada és la seqüència Carles", no?
El resultat a cadascun dels nostres tres Invenios és:
Cerca simple (Riba, Carles):
- https://traces.uab.cat/search?ln=ca&sc=1&p=%22Riba%2C+Carles%22 -> 1141
- https://ddd.uab.cat/search?ln=ca&sc=1&p=%22Riba%2C+Carles%22 -> 26
(Bach, Johann Sebastian)
- https://traces.uab.cat/search?ln=ca&sc=1&p=%22Bach%2C+Johann+Sebastian%22 -> 1141
- https://ifmuc.uab.cat/search?ln=ca&sc=1&p=%22Bach%2C+Johann+Sebastian%22 -> 26
- https://ddd.uab.cat/search?ln=ca&sc=1&p=%22Bach%2C+Johann+Sebastian%22 -> 26
Cerca avançada (Riba, Carles)
- https://traces.uab.cat/search?ln=ca&as=1&m1=a&p1=%22Riba%2C+Carles%22 -> 0
- https://ddd.uab.cat/search?ln=ca&as=1&m1=a&p1=%22Riba%2C+Carles%22 -> 50
(Bach, Johann Sebastian)
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
- S'ha actualitzat Descripció (diferències)
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
- S'ha actualitzat Descripció (diferències)
CR Actualitzat per Cristina Riera fa quasi 10 anys
Copio el correu de l'11-02-2016 perquè allà s'apunta que potser és una qüestió dels paràmetres. Ferran, mirar per aquí pot ser un bon començament?
Pel que fa a la cerca, he fet la següent prova: repetir la prova al DDD. He hagut d'eliminar la part de la URL que fa referència a la co·lecció a cercar (cc=tracesbib), però és curiós que al DDD sí que
funciona. Hi elimino la part de les URLs que no calen.
Cerca simple:
- https://traces.uab.cat/search?ln=ca&sc=1&p=%22Riba%2C+Carles%22 -> 1141
- https://ddd.uab.cat/search?ln=ca&sc=1&p=%22Riba%2C+Carles%22 -> 26
Cerca avançada:
- https://traces.uab.cat/search?ln=ca&as=1&m1=a&p1=%22Riba%2C+Carles%22 -> 0
- https://ddd.uab.cat/search?ln=ca&as=1&m1=a&p1=%22Riba%2C+Carles%22 -> 50
No ho entenc; m'ho miraré... Que no passi com va passar la darrera
vegada, que teníeu un paràmetre incomprensiblement diferent al DDD i a
IFMuC!
Bon cap de setmana,
Ferran
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
Ja he trobat una manera (que no m'agrada, però funciona) per forçar que les taules temporals es creïn també com a utf-8. Diria que aquest problema ve de nou amb MariaDB, perquè jo havia reindexat bases de dades senceres abans amb MySQL i no recordo que em passés. En tot cas, es tracta d'afegir a cada fitxer ~/.my.cnf aquestes instruccions:
[client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] collation-server = utf8_unicode_ci character-set-server = utf8 init-connect='SET NAMES utf8'
De tot el que he cercat a can Google, aquestes són les instruccions que m'han anat bé. Estan a https://github.com/WPN-XM/WPN-XM/issues/462.
He intentat moure aquestes instruccions a /etc/mysql/conf.d/invenio.cnf, perquè estiguessin en un sol lloc i d'ús general per a tothom. De fet, la meitat ja hi eren, però per molt que he intentat d'eliminar-ne una a una i traslladar-la al fitxer general, no me n'he ensortit. És a dir, que al menys ara per ara ho hem de tenir per a cada compte i cada màquina. Al menys podem desbloquejar aquesta situació.
Ara està reindexant tot Traces de proves. IFMuC de proves ho ha fet abans i molt ràpidament.
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
- Estat ha canviat de Creada a En curs
A part d'aquest incident inesperat, el que hem après és que en la configuració de Traces hi havia una ultracorrecció en el camp de definició de caràcters separadors. Concretament, hi teníem aquests valors:
CFG_BIBINDEX_CHARS_ALPHANUMERIC_SEPARATORS = \!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~
CFG_BIBINDEX_CHARS_PUNCTUATION = \.\,\:\;\?\!\"
Com que aquests valors no hi són ni a les configuracions del DDD ni d'IFMuC i el comportament és molt millor, la solució que albirem és que eliminant-lo es corregirà. Ha estat quan ho hem provat que, en el moment de reindexar Traces de proves amb aquest canvi, ens hem trobat errors del joc de caràcters per defecte de MariaDB que ens ha fet perdre molt de temps i que he solucionat segons he descrit fa una estona. De moment encara no ha acabat de reindexar-ho, haurem d'esperar a aquesta nit o demà, sempre al Traces de proves (http://traces-test.uab.cat:2000)
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
No sembla que la reindexació hagi estat suficient a Traces-test. En tot cas, el que sí que és cert és que els valors de CFG_BIBINDEX_CHARS_ALPHANUMERIC_SEPARATORS ara són idèntics a tots tres Invenios:
'[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~]'
'[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~]'
'[\\!\\"\\#\\$\\%\\&\\\'\\(\\)\\*\\+\\,\\-\\.\\/\\:\\;\\<\\=\\>\\?\\@\\[\\\\\\]\\^\\_\\`\\{\\|\\}\\~]'
I els de CFG_BIBINDEX_CHARS_PUNCTUATION també:
'[\\.\\,\\:\\;\\?\\!\\"]' '[\\.\\,\\:\\;\\?\\!\\"]' '[\\.\\,\\:\\;\\?\\!\\"]'
Miro d'esbrinar més coses...
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
He tornat a reindexar-lo tot i m'ha tornat a sortir el maleït error:
[...]
2016-04-28 10:58:43 --> tmp_idxWORD03F normal wordtable flush started
2016-04-28 10:58:43 --> ...updating 19595 words into tmp_idxWORD03F started
2016-04-28 10:58:43 --> Exception caught: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
2016-04-28 10:58:44 --> tmp_idxWORD03F normal wordtable flush started
2016-04-28 10:58:44 --> ...updating 19553 words into tmp_idxWORD03F started
2016-04-28 10:58:44 --> Traceback (most recent call last):
File "/home/traces/lib/python/invenio/bibtask.py", line 925, in _task_run
if callable(task_run_fnc) and task_run_fnc():
File "/home/traces/lib/python/invenio/bibindex_engine.py", line 1593, in task_run_core
_last_word_table.put_into_db()
File "/home/traces/lib/python/invenio/bibindex_engine.py", line 768, in put_into_db
self.put_word_into_db(word)
File "/home/traces/lib/python/invenio/bibindex_engine.py", line 833, in put_word_into_db
set = self.load_old_recIDs(word)
File "/home/traces/lib/python/invenio/bibindex_engine.py", line 812, in load_old_recIDs
res = run_sql(query, (word,))
File "/home/traces/lib/python/invenio/dbquery.py", line 210, in run_sql
rc = cur.execute(sql, param)
File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
raise errorclass, errorvalue
OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")
2016-04-28 10:58:45 --> Task #147598 finished. [CERROR]
I això que havia posat els valors recomanats a .my.cnf...
FJ Actualitzat per Ferran Jorba fa quasi 10 anys
Després de reindexar-lo del tot, el comportament continua el mateix. Fins i tot hem mirat de posar-hi a la URL el paràmetre ap=0 o ap=1 (alternate pattern, que ens hauria d'oferir alternatives a una cerca sense resultat, https://traces-test.uab.cat/help/admin/websearch-admin-guide?ln=ca), però no n'acabem d'entendre el comportament.
Sigui com sigui, el cert és que en la pantalla de cerca avançada, Traces dóna un resultat incorrecte i sense alternativa a una cerca que, des de la pantalla de cerca simple, sí que funciona. De fet, el problema no és tant que el resultat sigui incorrecte (també és incorrecte al DDD i a IFMuC), sinó que en Traces no ofereix alternativa.
Tampoc no hem trobat cap diferència significativa en els paràmetres de l'Invenio de Traces respecte als altres dos.
Deixem aquesta tasca oberta per a confirmar-ho. Sembla ser que a la 1.1.3.x.y, al meny al CERN, el comportament és correcte, perquè a la pantalla de cerca avançada dóna el mateix resultat (avisant que ignora les cometes dobles) que a la senzilla, p. ex:
- http://cds.cern.ch/search?ln=fr&sc=1&p=%22Matsyuk%2C+Roman%22&action_search=Recherche&op1=a&m1=a&p1=&f1=&rm=wrd&c=Articles+%26+Preprints&c=Books+%26+Proceedings&c=Presentations+%26+Talks&c=Periodicals+%26+Progress+Reports&c=Multimedia+%26+Outreach
- http://cds.cern.ch/search?c=CERN+Document+Server&p1=%22Matsyuk%2C+Roman%22&op1=a&op2=a&ln=fr&of=hb&rm=wrd&action_search=Cerca&as=1&rg=10&so=d&m3=a&m2=a&sc=0&m1=a