So I am developing a website which needs a search box in which you enter some activity like bowling, cycling etc. and to next of that there is another text box which has a location like New York City, USA or Brooklyn, NYC, USA etc. This will take me to listings that have such activities present. But I also need a way to search these particular listings. Suppose a listing is called ABC Bowling Alley, I want to be able to search that. Do I give something like search for activites on one end and search for listings on other end and separate them with an or, or do I do something else? Please suggest?

  • We have something very similar on vidados.com. One of the things we are currently debating is that although it works pretty well people don't necessarily realise they can search for both an activity and location so we are considering splitting it into 2 boxes to make that more obvious... – Gaz Nov 6 '15 at 14:25

I think Yelp does a good job with this situation:

enter image description here

| improve this answer | |
  • What if I wanted to search something like Andy's Bowling Alley, where will I type that? foursquare does a similar job as your answer. I need something different, a usecase where a user searching for a title results in a title search and searching for an activity results in an activity with/without two different searches and something that is user friendly? – Anand Singh Kunwar Nov 11 '15 at 11:40
  • Couldn't that be handled with the results? The more specific results displayed first? So if I search for Andy's Bowling Alley, results that have "Andy's" in it would be prioritized over just the activity "bowling." I think that's the point Olavxxx is making. Otherwise you could use radio buttons next to the search box to specify if you want to search for a business name or activity. That pattern used to be common but has fallen out of use in favor of the one-search-box-to-rule-them-all approach. – Eric Stoltz Nov 11 '15 at 19:07
  • One-search-box to rule them all approach is something I'll prefer. I agree with your approach that "Andy's" will gain priority over the bowling. What if there is a place which is called "The Bowling Alley", there is no "Andy's" that shall gain priority. I know I am thinking too hard, but I wanted a good solution to my problem. Radio buttons aren't my thing. – Anand Singh Kunwar Nov 11 '15 at 19:54

The most typical paradigm used for this case is basic/advanced search.

A basic search will simply search all relevant fields for the string. This is fast and easy for the user and should work most of the time. But it has some limitations: if you search for "bowling" it will return you bowling alleys, but also Bowling Green, Kentucky.

An advanced search allows a user to specify values/search strings for specific fields. There are various ways to implement this.

  • Filtering is the most common on modern websites. There might be an expanding tree that allows you to find the activities you are interested in, and there might be an option to return results within X miles of a particular location. In addition, there is a single search box that performs a basic keyword search. It should ignore any categories that are used for filtering.
  • Or you can allow the user to specify a different search string for different fields. This is not as easy to use as filtering, but it can work better if the fields contain a wide variety of data that you aren't able to fully categorize. For example, filtering on activity requires your site to have knowledge of and keep track of all activities, while this does not. This can be implemented either with:
    • Multiple text fields. This is the clearest for occasional users.
    • A syntax within a single search box. For example, in GMail I can type from:foo@bar.com to find all messages from a particular address. This is more convenient for power users, but it won't be understandable to occasional or less technically skilled users. It needs very good documentation, or to be offered as an option in addition to multiple text fields.
| improve this answer | |

Having worked on a search engine before there are some things you should consider:

  • Some company names have a location name in theire company name (like "New York Bowling Centre".)
  • Some companies reside in a different region than the location name in theire company name (historic name, or maybe they open up a new branch). Example: Michelin
  • Weighted search will give you an index to sort by, but you have to differentiate location from company name, if you wish to show the branch closest to the user
  • You need to tie your companies with locations for a "smart" search

Having thought about theese issues you can make a "quite smart" search engine, you will need only one input for search. How you do this, is to build a self improving search engine. You tie locations (lat, lng) to your companies (geolocation), also you look for patters in the searches.

If the search contains a location name, you should check if that location name resides in the end of the search string like: Mechanic New York.

If it does, you most certain know that the user wants a Mechanic in New York. However if the users searches for: New York Mechanic, he/she most likely wants a certain company called "New York Mechanic". There are many patterns like this, this is just a simple example.

But in the first example: " ", you will need both weighted search against indexes, as well as sorted by location (distance from the user). In this way they can find a local carpenter or they can find a certain carpenter :-)

It is quite hard to get this tuned in the way you want, you will need several indexes, different weighting, etc. But it's doable, even as a solo programmer.

| improve this answer | |

You can implement a keyword conditions search: enter image description here

It is a filter system that allows you to search for keywords that will set the rules for the search results. There is no need to create numerous search fields, it does the same function, rather set up the conditions. Better from UX point of view, as it less likely to confuse the user.

| improve this answer | |
  • Since there are only two filters this choice does not seem fitting. I was looking answers like yours, but something that would be better for my situation. – Anand Singh Kunwar Nov 6 '15 at 18:28
  • then i would do a search and maybe a location dropdown next to it...my apologies i misunderstood when you said search "particular listings" i assumed it was a criteria vs. actual location – Stanley VM Nov 6 '15 at 18:35
  • It is criteria vs actual location but there is only one criteria. That is my question. – Anand Singh Kunwar Nov 8 '15 at 12:40

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.