I understand that searching by itself has become a area, that also appears to become my problem. I simply have no idea how to start.
Here's the scenario: I acquired lots of shops which utilizes many people and which provides extensive different items available. I have to produce a single-textfield searchoption for my website. This textfield should sort through metadata from the shops (address, title, etc.), metadata from the items (title, type, etc.) and through employees.
I recon this search option is going to be broadly used on the website, so it must perform perfectly (no searches in each column, string.Consists of() etc.).
Presently I am thinking a lengthy the lines of getting tags for every entity within the database, which points towards the shop / worker / product, but I am unsure if the type of data-duplication could be simple to maintain. Another option is to cache popular queuries, however, I do not think any queuries is going to be much popular over others.
I am sure I am not the first one to have this type of problem. What are the common methods, third party libs, 3rd parties sites or simply hints for me personally for carrying this out?
Thanks ahead of time :)
Perhaps you have checked out Lucene? It's open-source and also the Java version is mature. It might greatly assist you to index and check your organized data. In my opinion you will find versions for .Internet, C (with Perl/Ruby bindings), and Python.
Regarding documentation - for that Java version a minimum of you will find some books available including that one.
I've had good encounters utilizing it to index relational data saved inside a database to ensure that it may be looked within an adhoc manner. However, additionally, it may crawl and index file based data.
You're really searching for a complete-text internet search engine. Lucene, as suggested by teabot is a superb tool with this.
A project according to Lucene (and available obviously) is DBSight, which supplies tools and connects for managing the appearanceOrstructure of search engine results, in addition to establishing the indexes in Lucene in line with the outcomes of database queries you define yourself.
I seem like a shill now. But I have attempted it and delay pills work very well.