3

I have a large database (firebird) containing address information for every address on my country (Brazil). This will be used to locate addresses inputed by users.

My main concern is how to implement a search engine capable of resolving typos, partial results, or results that are similar to the search query.

I'm pretty clueless as to where I would begin to implement this kind of capability. What are the terminologies I should be looking for? Is there any kind of service on the internet that would provide these capabilities, given that I provide the data?

RudiBR
  • 117
  • 10
  • This is called address standardization. There are third-party vendors that can handle this in many countries, presumably Brazil as well. – Gordon Linoff Mar 28 '16 at 18:45
  • @GordonLinoff it's not actually a problem specific to addresses per say, but to data querying. For example, if the user inputs "plista", I want the system to be able to guess he meant "paulista" – RudiBR Mar 28 '16 at 18:52

2 Answers2

3

You basically need Free text search capability

All the info is here Full Text Search with Firebird and Delphi

Community
  • 1
  • 1
elirevach
  • 404
  • 2
  • 7
1

You may need to know Wildcards and Regular Expressions, and Fuzzy Matching. You can google for a lot of information. You may also need to know Trie.

Those above are very complicated algorithms. But there are libraries which you can use for different languages like Python.

6324
  • 4,678
  • 8
  • 34
  • 63