Which third-party search engine (for free) should I use?

As the name says, I need a search engine ... to search for mysql. My site is based on PHP.

I was going with sphinx, but my hosting company does not support full-text indexes!

Thus, the search engine will be used without full-text search.

It should be quite powerful and should include at least the following features below:

  • When searching for 'bmw 520', only matches are returned in which these two words are in that particular order. does not match only "bmw" or only "520".

  • When searching for results, "bmw 330ci", as described above, will be returned, but WITH WITH WITHOUT without the ci extension. There are several extensions in cars, as you all know (i, ci, si, fi, etc.).

  • I want the minus sign to exclude all return values ​​that contain the word after the sign, for example: bmw -330 will return all the results of bmw without 330. (NOT instead of the minus sign is also normal)

  • all special character accents, such as 'é', are converted to their simple meanings, in this case 'e'.

  • list of words to completely ignore in the search

Thanks guys!

+1
source share
3 answers

Zend_Lucene finding competent work is good enough. I'm not sure how this will cope with your second requirement, however, if you configured the tokens, you can do this by considering the change from letters to numbers as a new word.

The one I'm really not sure is the main requirement. Given how it is indexed, the order becomes disrespectful in the search, so you won’t be able to do this without heavily editing Lucene by writing a filter (using lucene to pull the matches, then checking the order) or writing your own solution, All this will slow down the search and add load to your server.

There is also solr , but I never used it and knew nothing about it. Sphinx was another one, but I see that you have already made this decision.

+5
source

Xapian is very good (very complete) if you have time for the initial setup.

It functions the way you expected the search engine to work, tell the indexer which bits of information will be indexed under which namespace / table / object (page, profile, products, etc.), then it will issue a request for your users to based on keywords, it also supports Google style tags, for example, “profile: Mark icecream” will look for my profile for the word icecream, I seem to remember it, supporting ranges too for data that you specify as numeric.

It can be used in local mode, which can offer spelling modifications (did you mean?) Or remote mode, which many sites can index and query.

What really saved me once was the ability to attach temporary insecure data to an indexed item, for example. attaching the database identifier to all the data indexed for this record is very good for moving on and getting the whole record from the database when your matches are returned from xapian.

0
source

I used several search engines on my site during this time, but in the next recovery I plan to move on to a search on the Google site.

There are several reasons for this:

  • Users are very familiar with the list of search results on Google, which increases usability and, consequently, the click-through rate.
  • Google is very good at guessing when to use the page description and when to use the page fragment (this is also very useful for getting the corresponding fragments compared to some other engines).
  • It is used by thousands of very popular websites.
  • Google is the most popular search engine, so you know that their technology is reliable and accurate.

Searching a Google site starts at $ 100 per year for 1,000 pages or less (and a search limit) or you can use the free Google Custom Search engine (but it has much less customization).

0
source

Source: https://habr.com/ru/post/1306940/


All Articles