signfuse / corpusNGT

Corpus Nederlandse Gebarentaal RU
0 stars 0 forks source link

Zoeken op meer dan één woord leidt tot een error #72

Open ocrasborn opened 4 years ago

ocrasborn commented 4 years ago

Het viel me ineens op dat bij zoeken op "Woorden uit glossen of vertalingen" meervoud wordt gebruikt, 'woorden'. Ik probeerde voor het eerste twee woorden achter elkaar in te typen, was benieuwd hoe die geïnterpreteerd zouden worden (en? of? beide in onmiddellijke sequentie?), en kreeg toen een lelijke foutpagina.

ocrasborn commented 4 years ago

Ah, wacht: er is iets meer aan de hand: ook zoeken op 'doof' leidt tot eenzelfde error (PDOException: SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column 'source' at row 1.......) 'moeder' leidt niet tot een probleem.

signfuse commented 4 years ago

wat een lelijke fout inderdaad ja. Als ik het aantal resultaten beperk tot 20 per pagina (ipv 50) gaat het wel goed lijkt het.

ocrasborn commented 4 years ago

iets te maken met het geheugen?

signfuse commented 4 years ago

Ja, daar lijkt het op: "Data too long"

ocrasborn commented 4 years ago

De bovenstaande fout komt nu niet meer voor, maar ik heb een andere gevonden, @signfuse : ik probeerde te zoeken op "doof-a pt-1hand" (zonder quotes), om te kijken of ik op een meerdere woorden kon zoeken (wilde daarna met quotes proberen).Maar hoewel ik dan wel 31 resultaten krijg, is er ook een foutmelding, en worden er geen transcripties bij elke hit weergegeven.

Melding: Notice: Undefined variable: line in keyword_results() (regel 110 van /home/resignfuse/mine.signfuse.com/sites/all/modules/signfuse_search_semantic/signfuse_semantic_search.module).

signfuse commented 4 years ago

Ja, dit is een ander soort fout. Een fout in mijn code, ik kijk ernaar.

signfuse commented 4 years ago

probeer je nogmaals?

Het streepje werd gestript in mijn code, bv "doof-a" werd "doofa", (dus nadat de resultaten al uit de database waren gehaald) en dan vond die niets in de resultaten terug met bv "doofa" om in de uitgelichte tekst te plaatsen (want het moest doof-a zijn).

ocrasborn commented 4 years ago

Het streepje leidt niet meer tot een foutmelding, dat is opgelost :-)

Ik begrijp echter nog niet hoe ik een serie van woorden kan invoeren; dubbele quotes er om heen leidt tot nul resultaten, het lijkt alsof die quotes als deel van de zoekstring worden geïnterpreteerd. AND en OR doen helemaal niks, waar ik uit afleidt dat een serie van woorden altijd geïnterpreteerd wordt als OR: 'and' / 'or' komen zelf niet voor in de annotaties als hele woorden, en de woorden er om heen hoeven niet allebei in een resultaat te zitten zie ik in de aantallen.

Zouden we de gebruiker hier nog iets meer controle kunnen geven?

Een gerelateerde vraag: als ik zoek op 'doof' vind ik zowel 'doof-a' als 'doof-b', dus hij zoekt toch naar substrings? Maar zoeken op 'or' leidt tot niks, terwijl zoeken op 'oren' ook "horend" als hit opgeeft. Zoeken op # (hekje), wat gebruikt wordt in de glossen om vingerspellen te annoteren, leidt ook tot nul hits. Moet een string minimaal vier karakters hebben?

signfuse commented 4 years ago

Dat is nu weggevallen door dat streepje toe te laten. Het was zulks; operators +word -word wor*

ik ga de code aanpassen om een "-" toch midden in een woord te laten blijven zonder de betekenis "not" te krijgen en om een "#" toe te laten.

Het minimaal aantal karakters staat normaal gezien op 4 inderdaad. Wil je het liever op 1? En dubbele quotes, waarvoor zou je die willen inzetten? voor de woordvolgorde?

signfuse commented 4 years ago

Moet ook een "~" toegelaten worden?

signfuse commented 4 years ago

Schermafbeelding 2020-06-06 om 23 27 56

Hierbij de volledige legende om te zoeken. Die tilde is dus een probleem ...

signfuse commented 4 years ago

Die legende is van de database zelf (mySQL),

signfuse commented 4 years ago

Nog een mooie handleiding; https://dev.mysql.com/doc/refman/5.6/en/fulltext-boolean.html

signfuse commented 4 years ago

Om te zoeken werkt dit nu goed: +"doof-a" +"PT-1hand:1" +"~KIND-A" die quotes zijn nodig om die karakters ("-" en "~") van hun speciale betekenis te ontdoen.

ocrasborn commented 4 years ago
signfuse commented 4 years ago
[mysqld]
ft_min_word_len=1