3

I have a Postgres 9.3 database where users are mostly searching for locations by a combination of name and/or address (or fragments of).

An example of an address would be "123 8th st".

I've been able to setup a synonym dictionary that allows users to find such an address with "123 8th street", but I can't seem to get it to do the same for ordinals. That is, I want a search for "123 8 street" (etc) to be able to find this address.

I'm using the following code:

CREATE TEXT SEARCH CONFIGURATION my_app_english (
  COPY = english
);

CREATE TEXT SEARCH DICTIONARY my_app_synonyms (
  TEMPLATE = synonym,
  SYNONYMS = my_app_synonyms
);

ALTER TEXT SEARCH CONFIGURATION my_app_english
  ALTER MAPPING FOR asciiword
  WITH my_app_synonyms, english_stem;

And the synonym file had lines like:

1st 1
2nd 2
3rd 3
4th 4
5th 5
...

How can I make this full text search match "8th" when the user searches for "8"?

I suspect the token type is the issue, but am not sure how I can consistently treat the token with the ordinal like that without.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.