[Xapian/Omega] stemmer maakt trefwoord hoofdlettergevoelig?

Pagina: 1
Acties:

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Ik ben sinds kort bezig met Omega op Xapian, maar nu zit ik met het volgende probleem. Als ik de scriptindex binary aanroep met de "--stemmer=dutch" optie kan er niet meer op woonplaats gezocht worden zonder dat de eerste een hoofdletter is.

Ik heb op internet gezocht en in de documentatie gekeken, maar daar kon ik geen informatie vinden over dit probleem. Ik ben er op dit moment wel achter gekomen wat de oorzaak is, maar niet hoe ik dit kan verhelpen zonder dat ik de stemmer uit hoef te schakelen.

Een stukje uit van mijn scriptindex.conf:
code:
1
2
3
id             : field=id unique=Q boolean=Q
bezoek_plaats   : field=bezoek_plaats index
post_plaats       : field=post_plaats index


Output van de godmode template met de stemmer ingeschakeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Frequency   Term
1   Q60817220
7   Rtubbergen
7   tubberg <--
Document Data

bezoek_plaats=Tubbergen
dg_id=60817220
post_plaats=Tubbergen

Document Values
No values


Output van de godmode template met de stemmer uitgeschakeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Frequency   Term
1   Q60817220
7   Rtubbergen
7   tubbergen <--
Document Data

bezoek_plaats=Tubbergen
dg_id=60817220
post_plaats=Tubbergen

Document Values
No values


Bij de laatste kan wel op tubbergen worden gezocht, maar bij de eerste krijg ik alleen bij Tubbergen resultaten terug. Is er misschien een index= optie waarmee ik voor een bepaald veld de stemmer kan uitzetten? Ik heb de index=R (raw unstemmed term) al geprobeerd, maar dat haalt niets uit.

Bij voorbaat dank.

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Heeft niemand een idee hierover? :?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

RAJH schreef op woensdag 21 maart 2007 @ 15:04:
Ik heb op internet gezocht en in de documentatie gekeken, maar daar kon ik geen informatie vinden over dit probleem.
Voor dit soort dingen kan je het best bij de mailinglist terecht (xapian-discuss, zie info op de website). Er zijn net iets te weinig gebruikers van xapian om hier op het forum veel aandacht te krijgen.
Bij de laatste kan wel op tubbergen worden gezocht, maar bij de eerste krijg ik alleen bij Tubbergen resultaten terug. Is er misschien een index= optie waarmee ik voor een bepaald veld de stemmer kan uitzetten? Ik heb de index=R (raw unstemmed term) al geprobeerd, maar dat haalt niets uit.
Het probleem is dat de volledige, ongestemde term alleen gebruikt wordt bij hoofdletters, met als gevolg dat je er ook alleen met op hoofdletters zoeken ze weer terug kan vinden. Een naam als 's Hertogenbosch is dan helemaal mooi natuurlijk... Eigenlijk zou je plaats- en andere namen niet mogen stemmen, maar vziw biedt scriptindex daar momenteel geen optie voor om het uit te schakelen. Ik denk dat het wel vrij eenvoudig te doen moet zijn om dat te patchen, maar dan moet je het op een of andere manier ook bij het terugzoeken expliciet kunnen gebruiken. Op de mailinglist kan je ook daar meer over vragen en ook of en hoe het mogelijk is dat te (laten) veranderen.

Een andere optie is om het veld als boolean te indexeren. Hoewel ook dan het voorbeeld van 's Hertogenbosch mis gaat omdat scriptindex er standaard losse termen van maakt. Uiteraard kan je ook altijd nog een eigen indexer en searcher maken, in bijvoorbeeld php, die kan je natuurlijk precies laten doen wat jij wilt.

En een workaround als het om een apart zoekveld gaat in je formulier, zou kunnen zijn dat je het eerste karakter ervan een hoofdletter geeft met je form (bijv met javascript). Of dat je voor alle plaatsen een numerieke waarde bepaald (bijv in een sql-database) en die dan alsnog als boolean-veld toepast.

Voor het forum hier maken we alles overigens lower-case...

[ Voor 3% gewijzigd door ACM op 23-03-2007 09:45 ]


  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Oke, bedankt voor de informatie. Over dat zelf een indexer en searcher maken bedoel je dus als ik je goed begrijp om geen beruik te maken van omega, maar alleen van de xapian backend?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Ja en de meegeleverde API voor je favoriete programmeertaal natuurlijk (xapian-bindings pakket) :)

[ Voor 14% gewijzigd door ACM op 23-03-2007 12:53 ]