Say, Justin, I was wondering, do you have strong opinions about search engines? [irony icon]
You didn't get around to grouping till near the end, but I think it can really simplify searches. A phrase match is a type of grouping; and that's the one that I think is most natural to mere humans who don't know RegEx, let alone think it's the coolest thing ever invented. Most civilians I know get tripped up by assuming that phrase match is the default when the system treats the request as an OR or "any word" match--I think that's the root of most whining in the popular (clueless) press about how search engines are useless because they return too many results.
The "+-" notation is more congenial to programmers than civilians, I think. The meaning of the symbols must be memorized, but "AND" and "OR" and "NOT" are English words they already know. It really isn't that hard to make the parser recognize "+" and "AND" as synonyms, so there's no particular reason not to accommodate both syntaxes (syntaxii?)
Step back a level. Maybe the current fashion for entering search specs using either a cryptic notation or psuedo English is an awkward compromise that dumbs down the search system for the techies but makes it too complicated for the uninitiated. Maybe a good search engine needs two interfaces: A form-based or flowchart-like structured interface for the minimally geeky; and an explicitly geeky technical interface for power users. The latter might mean allowing people to use partial SQL For example somebody knowledgable in SQL could complete the sentence "SELECT * FROM Posts WHERE <INPUT SIZE="55" VALUE="Poster='Justin' AND ( Subject='*anomal*' OR Subject='*crap*' )">".
(Such a system would be ripe for nasty hacking without some serious syntax checking to prevent slipping in other SQL verbs like "DELETE" in malformed SQL.)
Good thing you volunteered to write this search engine!
--Robert
Off Topic » in reply to search conventions
Re: search conventions
