This page gives a quick overview of Lucene's search engine query syntax. For more info look here. This page is called Lucene Help.
term find a single Term is easy hello
"..." find a group of words "hello dolly"
? any single character (the ? can not be the 1st character of a search) te?t
* any multiple character (the * can not be the 1st character of a search) test*
OR match document if either of the terms exist "hello dolly" hello
"hello dolly" OR hello
AND match documents where both terms exists "hello dolly" AND "dolly lucy"
+ requires that the term after the "+" symbol exist +hello dolly
exclude documents that contain the term after the "-" symbol
exclude also supported with NOT or !
"hello dolly" -"dolly lucy"
"hello dolly" NOT "dolly lucy"
(...) use parentheses to form sub queries (hello OR dolly) AND website
~ fuzzy searchs to match terms similar in spelling roam
~n proximity search, within a distance expressed in number of words "hello dolly"~10
^n boost factor to increase importance in a search "hello dolly"^4 "dolly lucy"
\ escape special characters: + - && || ! ( ) { } [ ] ^ " * ? : \ \(1\+1\)\:2 to find (1+1):2

You can restrict the search domain by prefixing your query:

author:term find pages modified by certain author(s) author:~JohnFoo
attachment:term find pages with certain attachment name attachment:brushed*
name:term find pages with certain page name name:Main
content:term find pages with certain content content:jspwiki