We’ve been working on Super Search, the next installation in our Performance Suite of software for several months now. We had a need and desire to create a fast and flexible search module for EE that could also take the place of some of our more common weblog:entries calls. In the process we realized that we wanted to also control most of the functionality of the module right in the URI of the page. For a variety of reasons, having this level of control created a lot of fun flexibility and possibilities. We built using some of the Google syntax that we have all become used to.
One of the things that we use the module for the most is to enable price range searching. Maybe we have a classified ad website and we want to allow people to search for entries that fall between a certain price range. We made sure that this was easy in Super Search and we also built a tool to make it easy to adjust EE MySQL fields to enable the behavior. You just build a page with the {exp:super_search:results} loop and in the URI you pass a query that checks the range on the custom field that stores the price, like this:
http://www.yoursite.com/index.php/search/results/search&price-from=100&price-to=500
We also use the module quite a bit to search for entries where certain custom fields contain exact matches on some keyword. So on the same classified ad site, we might do this:
http://www.yoursite.com/index.php/search/results/search&price-from=100&price-to=500&exact-make=Chevy&exact-model=Camaro
This search would find Chevy Camaros that cost between $100 and $500 dollars.
You can filter on the weblog as well.
http://www.yoursite.com/index.php/search/results/search&price-from=100&price-to=500&exact-make=Chevy&exact-model=Camaro&channel=used_cars
The above search would find used Chevy Camaros selling for $100 - $500 bucks.
Super Search also has some pretty smart caching mechanisms built in. You can set searches to cache on a time based interval. You can set the search cache to refresh when specified templates are updated or when weblogs are posted to or when categories in specified groups are edited. Super Search caching with the already speedy architecture of the module makes it a fast little critter.
There are quite a few fun possibilities with Super Search and I plan to blog about them in the upcoming weeks. As we watch the module go through public beta, even more interesting uses will pop up.
mk



17 Comments
Chad Crowell
Nov 12, 2009 5:13 pm
#1
Oh Mitchell, you don’t even know how perfect the timing is for this. Please tell me one thing - tell me that you built a category search into this. So let’s sat that Chevy is a category and I am searching for Chevy Camaros. Something like this http://www.yoursite.com/index.php/search/results/search&price;-from=100&price;-to=500&category=Chevy&exact;-model=Camaro&channel=used_cars
Going to the public beta now…
Chad Crowell
Nov 12, 2009 5:19 pm
#2
And after reading the docs it looks like categories are included… buying now!! Thanks Mitchell
Mitchell Kimbrough
Solspace
Nov 12, 2009 5:28 pm
#3
Chad,
We also enabled conjoined category searching which is something I do on the regular.
/search/results/search&category=Camaro&&ChevyThis will pull entries that belong to both cats and exclude those that belong only to one of the cats.
Holler!
mk
Mitchell Kimbrough
Solspace
Nov 12, 2009 5:29 pm
#4
Semicolons are popping up in our comments. It’s something that EE does when it sees ampersands. Don’t put semicolons in your search string.
Woot!
mk
eyevariety
Nov 12, 2009 9:12 pm
#5
OMG I just lost my sh*t. I can’t wait to get intimate with this thing.
Djive
Nov 13, 2009 12:16 am
#6
this is what we all waited for
Thx people
Mitchell Kimbrough
Solspace
Nov 13, 2009 1:08 am
#7
All my favorite people are commenting on this thread. Long time customers. Long time fellow developers…
You all holler with bugs.
Cheers.
mk
Nathan Pitman (Nine Four)
Nov 13, 2009 2:48 am
#8
This sounds immense, we’ve just started resorting to using Google Search in place of the native search module but it will be interesting to see how this compares, much more powerful by the sounds of it!
Brendon Carr
Nov 16, 2009 7:22 pm
#9
Maybe I’m overlooking something, but I don’t see anything pertaining to searches including related entries and reverse-related entries. These are sometimes useful as supplements to or substitutes for categories, where the related entries allow for a description of what’s going on (think of practice-area pages for a law firm, and how the attorneys’ bios would be related to the practice areas if a particular attorney practices in that area).
Does Super Search allow for searches to include related entries?
Also, looking at what it does now and your description of what it can do, maybe this shouldn’t be described as simply a search module. It seems more like a weblog module replacement.
Mitchell Kimbrough
Solspace
Nov 17, 2009 11:57 am
#10
Brendon,
You’re right, currently Super Search is not checking related entries. I’ll add that for consideration to the feature list.
And you’re also right that Super Search can in quite a few cases replace weblog:entries.
Tuittu_1
Nov 18, 2009 12:42 am
#11
Yello…
I guess this goodie isnt know how to search MSM-sites?
Kelsey Martens
Solspace
Nov 18, 2009 1:09 pm
#12
Tuittu,
It should have no problem with MSM sites. You would just use the site_id parameter when necessary
http://www.solspace.com/docs/detail/super_search_results/#site_id
Tuittu_1
Nov 20, 2009 7:50 am
#13
So you can search from Site A and results comes from Site B, C and D also? Is this module how soon EE2.0 ready? The reason i ask, is that there has not been such function that allows search MSM-wide, and that’s very sad and poor thing.
Kelsey Martens
Solspace
Nov 20, 2009 11:46 am
#14
Tuittu,
We’ll have more info available for you soon
Sandwich
Nov 26, 2009 4:44 am
#15
I’m actually in the process of constructing a classified ads site, and this pops up. Amazing.
However, I’ve got a question (err… see a couple of paragraphs down for the actual question :p). I’m making heavy use of a couple of add-ons for the site, namely, Gypsy and FF Matrix fields. I have weblogs such as cars, pets, apartments, etc. They all have their own fields (pets have dog/cat dropdowns, cars have year, make, apartments have # rooms, floor, etc), but all share some basic fields, which is where Gypsy comes in.
On top of this, I use a Gypsy FF Matrix field to store price information (1 row max). Now, since this classified ads site will be catering to a somewhat international community in a certain city, it’s set up to accommodate 3 of the most common currencies in use in that city.
Bottom line is, I have a “shared_price-range” Gypsy FF Matrix field with a “currency” FF Radio Group, and “min” and “max” Text fields (fieldlets?). Can the Super Search module access and make use of my Gypsy FF Matrix fields?
Mitchell Kimbrough
Solspace
Nov 26, 2009 11:12 am
#16
Sandwich,
The price fields need to be separate MySQL numeric columns in order for Super Search to work well. People will want to order results by price and search by price range. Super Search will not be able to do this with FF Matrix. FF Matrix is a killer tool, but it’s a data storage and data access tool. It’s not a data search tool. The format of data in FF Matrix fields is not set up for fast and highly functional DB searching and scanning. You’ll have to break out those fields into separate EE custom fields and then use the Super Search CP to convert them to a numeric MySQL type like float or decimal.
As for the other Gypsy and FF Matrix aspects of this, we will be looking into integrating support for those tools more tightly soon. However, because of the nature of the storage method of data using those tools, our choices, flexibility and performance opportunities will be limited.
mk
Sandwich
Nov 26, 2009 1:26 pm
#17
Ok, thanks for the very informative reply, MK.