Low Search > Keyword-less search using filters? (such as category or custom field)
I can't seem to nail this, but I feel as if Low Search should be able to do this: if I submit a search without a keyword, but have selected a dropdown filter (say a category) ... it should return a list of all the entries in that category as my search results, shouldn't it?
Similarly, if I select a dropdown that was a channel entry, it would show just that channel entry in the results.
Am I missing something here?
I just keep getting 'no results' ... however, the filters seem to work fine when using a keyword (and I do not have 'required' set at all).
Replies
Low 22 Feb 2013 08:54
Yes, it should. If you're getting no_results, then you might have an issue with the naming of the fields. What does your Low Search Form and Results tag look like? Use http://pastie.org for large chunks of code.
Mark Elliotson 22 Feb 2013 15:20
Thanks for looking into this ... here's my code: http://pastie.org/6316950
Low 22 Feb 2013 23:42
Try setting the category filter without a group, so:
Mark Elliotson 23 Feb 2013 20:30
Hmm ... that didn't do it.
Here's where I'm at right now > http://pastie.org/6323770
Low 24 Feb 2013 10:40
What version of Low Search are you using?
By the looks of your latest code, you're selecting two categories in a single select. I'd try naming both select-elements name="category[]", setting require_all="category" on the Form tag.
Also, as a side note, the limit="24" parameter won't do anything on the Form tag. You should define it on the Results tag.
Mark Elliotson 25 Feb 2013 16:04
Low ... first off ... thanks for the help!
I'm still not getting the desired results here ... I'm on Low Search 2.2.0 running on EE 2.5.5.
Just to reiterate ... the keyword search with and without selecting any of the dropdown parameters works great ... as advertised! The issue I'm facing is that if I select only a dropdown, but do not input a keyword, I get a 'no results' return from my results template.
Here's my current code ... still stuck in the same place: http://pastie.org/6334634
Low 25 Feb 2013 17:11
Can you share your Results tag as well?
Mark Elliotson 25 Feb 2013 18:15
Sure ... thanks!
Results Template Code > http://pastie.org/6335586
Low 26 Feb 2013 08:52
This form tag should give you entries that, when a type and colour have been selected, will only return entries that have both categories assigned: http://pastie.org/6339650
This form tag uses multiple select elements, which should give you entries that have (type1, type2 or type3) AND (colour1, colour2 or colour3): http://pastie.org/6339655
If you're still not getting the desired results with either of these two examples, I should take a look myself. Then you can send superadmin login credentials to hi at gotolow dot com.
Mark Elliotson 26 Feb 2013 17:56
Wow ... thanks for work on the code ... very much appreciated!
So I tried out both bits of code and I'm still not getting what I think I should be ... I'm starting to be concerned that perhaps I'm misunderstanding the expected functionality?
I've attached 3 screenshots ... hoping visuals communicate better ... and maybe you can tell me if I'm asking for something that's not possible here.
(This is currently on a MAMP install, so I can't give you superadmin access .... but once I move it to a server, I'll get back to you, if needed).
Let me know what you think after checking out these screen shots ...
Low 26 Feb 2013 19:53
Hmm, it should work. Just tested a similar setup, and it works just fine.
Okay, turn on the template debugger and output profiler, run the query that produces no_results, and copy/paste all the items that contain Low Search in the template debugger, and (if you can) copy the DB queries here, too. Or make a screenshot of those.
Mark Elliotson 26 Feb 2013 20:21
Here are the template debugger results:
(0.008228 / 0.78MB) Parsing Tags in Template
(0.008252 / 0.80MB) Tag: {exp:low_search:keywords query="eyJjb2xsZWN0aW9uIjoiZmFicmljcyIsImxvb3NlX2VuZHMiOiJ5ZXMiLCJyZXN1bHRfcGFnZSI6ImZhYnJpY3NcL3Jlc3VsdHMiLCJzZWFyY2hfbW9kZSI6ImFsbCIsImtleXdvcmRzIjoiU0VBUkNIIEZBQlJJQ1MgLi4uIn0"}
(0.008317 / 0.80MB) No Closing Tag
(0.008374 / 0.81MB) Tag: {exp:low_search:form collection="catalogue" form_id="search" form_class="product" search_mode="all" result_page="furniture/results" limit="20"}
(0.008434 / 0.80MB) Closing Tag Found
(0.008493 / 0.81MB) Tag: {exp:low_search:form collection="fabrics" form_id="faq_search" form_class="search_well hidden-phone furniture" search_mode="all" result_page="fabrics/results" loose_ends="yes" }
(0.008556 / 0.81MB) Closing Tag Found
(0.008621 / 0.81MB) Tag: {exp:low_search:results query="eyJjb2xsZWN0aW9uIjoiZmFicmljcyIsImxvb3NlX2VuZHMiOiJ5ZXMiLCJyZXN1bHRfcGFnZSI6ImZhYnJpY3NcL3Jlc3VsdHMiLCJzZWFyY2hfbW9kZSI6ImFsbCIsImtleXdvcmRzIjoiU0VBUkNIIEZBQlJJQ1MgLi4uIn0" status="not closed" limit="24" disable="member_data|pagination"}
(0.008683 / 0.81MB) Closing Tag Found
(0.008767 / 0.81MB) Tag: {exp:channel:entries channel="blog" disable="member_data|categories|pagination" limit="3" dynamic="no"}
(0.008819 / 0.81MB) Closing Tag Found
(0.008872 / 0.82MB) Tag: {exp:tgl_twitter screen_name="greshamhouse" create_links="user_mentions|hashtags|urls|media" limit="4"}
(0.008919 / 0.81MB) Closing Tag Found
(0.008972 / 0.82MB) Tag: {exp:member:login_form}
(0.008999 / 0.81MB) Closing Tag Found
(0.009043 / 0.81MB) Processing Tags
(0.009065 / 0.83MB) Module Tag: Low_search/keywords
(0.009081 / 0.83MB) Module Tag: Low_search/form
(0.009095 / 0.83MB) Module Tag: Low_search/form
(0.009114 / 0.83MB) Module Tag: Low_search/results
(0.009129 / 0.83MB) Module Tag: Channel/entries
(0.009146 / 0.83MB) Module Tag: Tgl_twitter/
(0.009161 / 0.83MB) Module Tag: Member/login_form
(0.009176 / 0.83MB) Including Files for Plugins and Modules
(0.010235 / 0.95MB) Files for Plugins and Modules All Included
(0.010608 / 0.97MB) Beginning Final Tag Data Processing
(0.010623 / 0.97MB) Calling Class/Method: Low_search/keywords
(0.010686 / 0.97MB) -> Class Called: Low_search
(0.012185 / 1.05MB) -> Method Called: keywords
(0.012286 / 1.05MB) -> Data Returned
(0.012322 / 1.05MB) Calling Class/Method: Low_search/form
(0.012381 / 1.05MB) -> Class Called: Low_search
(0.012518 / 1.05MB) -> Method Called: form
(0.012859 / 1.07MB) Low Search: form tag - no or invalid query given
(0.013411 / 1.08MB) -> Data Returned
(0.013456 / 1.07MB) Calling Class/Method: Low_search/form
(0.013652 / 1.08MB) -> Class Called: Low_search
(0.013791 / 1.08MB) -> Method Called: form
(0.013971 / 1.08MB) Low Search: form tag - no or invalid query given
(0.014369 / 1.08MB) -> Data Returned
(0.014414 / 1.08MB) Calling Class/Method: Low_search/results
(0.014572 / 1.08MB) -> Class Called: Low_search
(0.014711 / 1.08MB) -> Method Called: results
(0.025481 / 1.18MB) Low Search: starting search (fulltext)
(0.025897 / 1.18MB) Low Search: Searched but found nothing. Returning no results.
(0.025924 / 1.18MB) Returning No Results Content
(0.026034 / 1.12MB) -> Data Returned
(0.026092 / 1.12MB) Calling Class/Method: Channel/entries
(0.026201 / 1.11MB) -> Class Called: Channel
(0.026605 / 1.15MB) -> Method Called: entries
(0.035082 / 1.52MB) Calling Extension Class/Method: Low_search_ext/channel_entries_query_result
(0.041179 / 1.75MB) Calling Extension Class/Method: Playa_ext/channel_entries_tagdata
(0.042235 / 1.75MB) Calling Extension Class/Method: Matrix_ext/channel_entries_tagdata
(0.045671 / 1.81MB) Calling Extension Class/Method: Playa_ext/channel_entries_tagdata
(0.045844 / 1.81MB) Calling Extension Class/Method: Matrix_ext/channel_entries_tagdata
(0.047145 / 1.82MB) Calling Extension Class/Method: Playa_ext/channel_entries_tagdata
(0.047329 / 1.82MB) Calling Extension Class/Method: Matrix_ext/channel_entries_tagdata
(0.048434 / 1.67MB) -> Data Returned
(0.048504 / 1.67MB) Calling Class/Method: Tgl_twitter/
(0.048613 / 1.67MB) -> Class Called: Tgl_twitter
(0.048652 / 1.68MB) Using 'user' Twitter Timeline For User greshamhouse
(0.048803 / 1.70MB) Twitter Timeline Retrieved From Cache.
(0.058009 / 1.94MB) -> Method Called: __construct
(0.058063 / 1.95MB) -> Data Returned
(0.058111 / 1.94MB) Calling Class/Method: Member/login_form
(0.058192 / 1.94MB) -> Class Called: Member
(0.058988 / 2.01MB) -> Method Called: login_form
(0.059138 / 2.01MB) -> Data Returned
(0.059243 / 1.96MB) Parsing Tags in Template
(0.059276 / 1.97MB) Tag: {exp:channel:categories channel="fabrics" style="linear" category_group="5"}
(0.059329 / 1.97MB) Closing Tag Found
(0.059391 / 1.97MB) Tag: {exp:channel:categories channel="fabrics" style="linear" category_group="4"}
(0.059438 / 1.97MB) Closing Tag Found
(0.059490 / 1.97MB) Processing Tags
(0.059511 / 1.98MB) Module Tag: Channel/categories
(0.059525 / 1.98MB) Module Tag: Channel/categories
(0.059534 / 1.98MB) Including Files for Plugins and Modules
(0.059543 / 1.98MB) Files for Plugins and Modules All Included
(0.059550 / 1.98MB) Beginning Final Tag Data Processing
(0.059560 / 1.98MB) Calling Class/Method: Channel/categories
(0.059640 / 1.98MB) -> Class Called: Channel
(0.059765 / 1.99MB) -> Method Called: categories
(0.061760 / 2.00MB) -> Data Returned
(0.061823 / 1.99MB) Calling Class/Method: Channel/categories
(0.061907 / 1.99MB) -> Class Called: Channel
(0.062024 / 1.99MB) -> Method Called: categories
(0.064006 / 2.00MB) -> Data Returned
(0.064085 / 1.97MB) - End Tag Processing -
(0.064115 / 1.97MB) Processing Advanced Conditionals
(0.065732 / 1.97MB) - End Template Processing -
(0.065744 / 1.97MB) Parse Global Variables
(0.069096 / 1.98MB) Template Parsing Finished
Mark Elliotson 26 Feb 2013 20:22
Here are the DB queries :
DATABASE: expressionengine QUERIES: 43 (Hide)
0.0006 SELECT *
FROM ('exp_sites')
WHERE 'site_id' = 1
0.0018 SHOW TABLES FROM 'expressionengine'
0.0004 SELECT whitelisted_type, whitelisted_value FROM exp_whitelisted
WHERE whitelisted_value != ''
0.0005 SELECT blacklisted_type, blacklisted_value FROM exp_blacklisted
0.0006 SELECT DISTINCT ee.* FROM exp_extensions ee WHERE enabled = 'y' ORDER BY hook, priority ASC, class
0.0004 SELECT 'cat_id', 'cat_url_title', 'cat_name', 'cat_description', 'cat_image', 'parent_id'
FROM ('exp_categories')
WHERE 'site_id' = '1'
AND 'cat_url_title' IN ('fabrics', 'results', 'eyJjb2xsZWN0aW9uIjoiZmFicmljcyIsImxvb3NlX2VuZHMiOiJ5ZXMiLCJyZXN1bHRfcGFnZSI6ImZhYnJpY3NcL3Jlc3VsdHMiLCJzZWFyY2hfbW9kZSI6ImFsbCIsImtleXdvcmRzIjoiU0VBUkNIIEZBQlJJQ1MgLi4uIn0')
0.0002 SELECT 'member_id', 'admin_sess', 'last_activity'
FROM ('exp_sessions')
WHERE 'session_id' = '38fac04877fabb1ebfb448d14902156ef199d299'
AND 'user_agent' = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.99 Safari/537.22'
0.0005 SELECT *
FROM ('exp_members' m, 'exp_member_groups' g)
WHERE 'g'.'site_id' = 1
AND m.group_id = g.group_id
AND 'member_id' = 1
0.0002 UPDATE 'exp_sessions' SET 'session_id' = '38fac04877fabb1ebfb448d14902156ef199d299', 'member_id' = 1, 'admin_sess' = 1, 'ip_address' = '127.0.0.1', 'user_agent' = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.99 Safari/537.22', 'last_activity' = 1361909906 WHERE session_id ='38fac04877fabb1ebfb448d14902156ef199d299'
0.0003 SELECT LOWER(cat_url_title) AS cat_url_title, 'cat_id', 'parent_id', 'group_id', 'cat_name', 'cat_description', 'cat_image'
FROM ('exp_categories')
WHERE 'site_id' = '1'
AND LOWER(cat_url_title) IN ('fabrics', 'results', 'eyjjb2xszwn0aw9uijoizmficmljcyisimxvb3nlx2vuzhmioij5zxmilcjyzxn1bhrfcgfnzsi6imzhynjpy3ncl3jlc3vsdhmilcjzzwfyy2hfbw9kzsi6imfsbcisimtlexdvcmrzijoiu0vbukniiezbqljjq1mgli4uin0')
AND 'group_id' IN ('1', '2', '4', '3')
0.0003 SELECT *
FROM ('exp_online_users')
WHERE 'site_id' = '1'
AND 'date' > 1361909006
ORDER BY 'name'
0.0003 UPDATE 'exp_online_users' SET 'member_id' = 1, 'name' = 'Admin', 'ip_address' = '127.0.0.1', 'date' = 1361909906, 'anon' = '', 'site_id' = '1' WHERE 'site_id' = '1' AND 'ip_address' = '127.0.0.1' AND 'member_id' = 1
0.0002 SELECT *
FROM ('exp_stats')
WHERE 'site_id' = '1'
0.0001 UPDATE 'exp_stats' SET 'last_visitor_date' = 1361909906 WHERE 'site_id' = '1'
0.0002 SELECT 'snippet_name', 'snippet_contents'
FROM ('exp_snippets')
WHERE (site_id = 1 OR site_id = 0)
0.0002 SELECT 'group_id'
FROM ('exp_template_groups')
WHERE 'group_name' = 'fabrics'
AND 'site_id' = '1'
0.0004 SELECT COUNT(*) as count
FROM ('exp_templates')
WHERE 'group_id' = '9'
AND 'template_name' = 'results'
0.0003 SELECT 'exp_templates'.*, 'exp_template_groups'.'group_name'
FROM ('exp_templates')
JOIN 'exp_template_groups' ON 'exp_template_groups'.'group_id' = 'exp_templates'.'group_id'
WHERE 'exp_template_groups'.'site_id' = '1'
AND 'exp_templates'.'template_name' = 'results'
AND 'exp_template_groups'.'group_name' = 'fabrics'
0.0001 SELECT COUNT(*) as count
FROM ('exp_template_no_access')
WHERE 'template_id' = '56'
AND 'member_group' = '1'
0.0002 UPDATE 'exp_templates' SET 'hits' = 56 WHERE 'template_id' = '56'
0.0001 SELECT 'module_version', 'module_name'
FROM ('exp_modules')
0.0003 SELECT *
FROM ('exp_low_search_collections')
ORDER BY 'collection_label' asc
0.0002 SELECT 'settings'
FROM ('exp_extensions')
WHERE 'class' = 'Low_search_ext'
LIMIT 1
0.0003 SELECT entry_id, collection_id, MATCH(index_text) AGAINST('search fabrics') AS score
FROM ('exp_low_search_indexes')
WHERE 'collection_id' IN ('3')
AND 'site_id' IN (1)
AND MATCH(index_text) AGAINST('+search* +fabrics*' IN BOOLEAN MODE)
ORDER BY 'score' desc
0.0003 SELECT 'field_id', 'field_type', 'field_fmt', 'field_name', 'site_id', 'field_settings'
FROM ('exp_channel_fields')
0.0002 SELECT channel_id FROM exp_channels WHERE channel_name = 'blog'
0.0013 SELECT t.entry_id FROM exp_channel_titles AS t
LEFT JOIN exp_channels ON t.channel_id = exp_channels.channel_id LEFT JOIN exp_members AS m ON m.member_id = t.author_id WHERE t.entry_id !='' AND t.site_id IN ('1') AND t.entry_date < 1361909906 AND (t.expiration_date = 0 OR t.expiration_date > 1361909906) AND t.channel_id = '1' AND t.status = 'open' ORDER BY t.sticky desc, t.entry_date desc, t.entry_id desc LIMIT 0, 3
0.0009 SELECT t.entry_id, t.channel_id, t.forum_topic_id, t.author_id, t.ip_address, t.title, t.url_title, t.status, t.dst_enabled, t.view_count_one, t.view_count_two, t.view_count_three, t.view_count_four, t.allow_comments, t.comment_expiration_date, t.sticky, t.entry_date, t.year, t.month, t.day, t.edit_date, t.expiration_date, t.recent_comment_date, t.comment_total, t.site_id as entry_site_id,
w.channel_title, w.channel_name, w.channel_url, w.comment_url, w.comment_moderate, w.channel_html_formatting, w.channel_allow_img_urls, w.channel_auto_link_urls, w.comment_system_enabled,
m.username, m.email, m.url, m.screen_name, m.location, m.occupation, m.interests, m.aol_im, m.yahoo_im, m.msn_im, m.icq, m.signature, m.sig_img_filename, m.sig_img_width, m.sig_img_height, m.avatar_filename, m.avatar_width, m.avatar_height, m.photo_filename, m.photo_width, m.photo_height, m.group_id, m.member_id, m.bday_d, m.bday_m, m.bday_y, m.bio,
md.*,
wd.*
FROM exp_channel_titles AS t
LEFT JOIN exp_channels AS w ON t.channel_id = w.channel_id
LEFT JOIN exp_channel_data AS wd ON t.entry_id = wd.entry_id
LEFT JOIN exp_members AS m ON m.member_id = t.author_id
LEFT JOIN exp_member_data AS md ON md.member_id = m.member_id WHERE t.entry_id IN (425,424,423) ORDER BY t.sticky desc, t.entry_date desc, t.entry_id desc
0.0003 SELECT *
FROM ('exp_fieldtypes')
0.0013 SELECT *
FROM ('exp_files')
WHERE 'upload_location_id' IN ('1')
AND 'file_name' IN ('IMG_2382.JPG', 'IMG_2375.JPG', 'IMG_1660.JPG')
0.0005 SELECT 'field_id', 'field_name'
FROM ('exp_channel_fields')
WHERE 'field_type' = 'playa'
AND 'site_id' = '1'
0.0003 SELECT 'field_id', 'field_name', 'field_settings'
FROM ('exp_channel_fields')
WHERE 'field_type' = 'matrix'
AND 'site_id' = '1'
0.0001 SELECT 'upload_id'
FROM ('exp_upload_no_access')
WHERE 'member_group' IS NULL
0.0005 SELECT *
FROM ('exp_upload_prefs')
ORDER BY 'name'
0.0003 SELECT DISTINCT cat_group, channel_id FROM exp_channels WHERE site_id IN ('1') AND channel_name = 'fabrics'
0.0002 SELECT field_id, field_name FROM exp_category_fields
WHERE site_id IN ('1')
AND group_id IN ('5')
0.0004 SELECT c.cat_name, c.cat_url_title, c.cat_image, c.cat_description, c.cat_id, c.parent_id , cg.field_html_formatting, fd.*
FROM exp_categories AS c
LEFT JOIN exp_category_field_data AS fd ON fd.cat_id = c.cat_id
LEFT JOIN exp_category_groups AS cg ON cg.group_id = c.group_id
WHERE c.group_id IN ('5') ORDER BY c.group_id, c.parent_id, c.cat_order
0.0002 SELECT DISTINCT cat_group, channel_id FROM exp_channels WHERE site_id IN ('1') AND channel_name = 'fabrics'
0.0002 SELECT field_id, field_name FROM exp_category_fields
WHERE site_id IN ('1')
AND group_id IN ('4')
0.0004 SELECT c.cat_name, c.cat_url_title, c.cat_image, c.cat_description, c.cat_id, c.parent_id , cg.field_html_formatting, fd.*
FROM exp_categories AS c
LEFT JOIN exp_category_field_data AS fd ON fd.cat_id = c.cat_id
LEFT JOIN exp_category_groups AS cg ON cg.group_id = c.group_id
WHERE c.group_id IN ('4') ORDER BY c.group_id, c.parent_id, c.cat_order
0.0002 SELECT 'variable_name', 'variable_data'
FROM ('exp_global_variables')
WHERE 'site_id' = '1'
0.0003 INSERT INTO 'exp_security_hashes' ('date', 'hash', 'session_id') VALUES (1361909906,'0eccec7af17de87530807ebb8ccf9cc4abefd1f6','38fac04877fabb1ebfb448d14902156ef199d299'), (1361909906,'c65a5a072fe825a79249199b3bdf82074a39306b','38fac04877fabb1ebfb448d14902156ef199d299')
0.0002 SELECT action_id, class, method FROM exp_actions WHERE (class= 'Low_search' AND method = 'catch_search') OR (class= 'Search' AND method = 'do_search') OR (class= 'Member' AND method = 'member_login') OR (class= 'Member' AND method = 'member_logout')
Low 26 Feb 2013 21:00
By the looks of the debugging data, you're submitting "SEARCH FABRICS ..." as keywords, not an empty string.
Changing the keywords field to this:
Note that the placeholder attribute is a HTML5 attribute that won't show in IE9- but will show in capable browsers.
Mark Elliotson 26 Feb 2013 21:33
Ha ... lol ... well, in the light of day, I guess that makes sense!
Thanks so much for working with me on this!!!
It's all good now!
I'm using this >
<input type="search" name="keywords" value="" placeholder="SEARCH FABRICS ..." onfocus="if(this.placeholder=='SEARCH FABRICS ...') this.placeholder='';" onblur="if(this.placeholder=='') this.placeholder='SEARCH FABRICS ...';" />
Low 26 Feb 2013 21:39
Good!
And you can remove the onfocus="" and onblur="" bits -- the placeholder="" parameter does that automatically (it was added to the HTML5 spec because of that UX pattern).
hrvoje66 20 Feb 2014 10:17
Hi,
is it possible to achieve the same functionality with filters?
this functionality:
"This form tag uses multiple select elements, which should give you entries that have (type1, type2 or type3) AND (colour1, colour2 or colour3)"
http://pastie.org/6339655
in this code
http://pastie.org/8751560
the goal is the same functionality but without search button, and to look like menu
Low 20 Feb 2014 10:34
You could just create the form with drop downs, and use JS to submit the form onchange of the select elements.
Low 20 Feb 2014 10:39
Or, if you're using filters, make sure you use the category group parameters for each list:
hrvoje66 21 Feb 2014 07:29
Hi,
that code works, but I have new issue now.
I have a webshop and I use filters for search.
I use {exp:low_search:results} for webshop homepage, and I want to display all items from all categories when page is loaded.
I did that by clicking all categories and copy/paste query from url and putting it as parametar.
Is there more elegant way to do that, display all shop items by default?
Also
My code works well on index shop page, but when on category page, I get warnings:
A PHP Error was encountered
Severity: Warning
Message: array_merge() [function.array-merge]: Argument #1 is not an array
Filename: low_search/mod.low_search.php
Line Number: 1572
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/kolanz/public_html/systemxtr/codeigniter/system/core/Exceptions.php:170)
Filename: core/Common.php
Line Number: 408
I need the search results to work on all shop pages, both index and categories and I need the ability to filter products using low search filters on those pages.
This is my code: http://pastie.org/8754498
EE version: v2.7.3
Low Search version: 3.1.1
Store version: 2.2.0
xynergy 2 Nov 2015 18:11
Hi Low,
I'm trying to do the same thing but can't seem to get it working in EE v2.10.1 and Low Search v4.2.0
I want to allow search by keyword, category or both but can't get it working without a keyword. It works fine if keyword is entered both with and without a category selected, but if you leave the keyword out, I get no results every time (see image)
Form & Results code here: http://pastie.org/10524931
Thanks in advance!