Caution: The documentation you are viewing is
for an older version of Zend Framework.
You can find the documentation of the current version at:
Supported queries - Getting Started with Zend_Search_Lucene
Zend_Search_Lucene and Java Lucene support a powerful query language. It allows searching for individual terms, phrases, ranges of terms; using wildcards and fuzzy search; combining queries using boolean operators; and so on.
A detailed query language description can be found in the Zend_Search_Lucene component documentation.
What follows are examples of some common query types and strategies.
Example #1 Querying for a single word
Searches for the word "hello" through all document fields.
Note: Default search field
Important note! Java Lucene searches only through the "contents" field by default, but Zend_Search_Lucene searches through all fields. This behavior can be modified using the Zend_Search_Lucene::setDefaultSearchField($fieldName) method.
Example #2 Querying for multiple words
Searches for two words. Both words are optional; at least one of them must be present in the result.
Example #3 Requiring words in a query
Searches for two words; "hello" is required, "dolly" is optional.
Example #4 Prohibiting words in queried documents
Searches for two words; "hello" is required, 'dolly' is prohibited. In other words, if the document matches "hello", but contains the word "dolly", it will not be returned in the set of matches.
Example #5 Querying for phrases
Searches for the phrase "hello dolly"; a document only matches if that exact string is present.
Example #6 Querying against specific fields
Searches for the phrase "The Right Way" within the title field and the word "go" within the text field.
Example #7 Querying against specific fields as well as the entire document
Searches for the phrase "The Right Way" within the title field and the word "go" word appearing in any field of the document.
Example #8 Querying against specific fields as well as the entire document (alternate)
Searches for the word "Do" within the title field and the words "it" and "right" words through all fields; any single one matching will result in a document match.
Example #9 Querying with the wildcard "?"
Search for words matching the pattern "te?t", where "?" is any single character.
Example #10 Querying with the wildcard "*"
Search for words matching the pattern "test*", where "*" is any sequence of zero or more characters.
Example #11 Querying for an inclusive range of terms
Search for the range of terms (inclusive).
Example #12 Querying for an exclusive range of terms
Search for the range of terms (exclusive).
Example #13 Fuzzy searches
Fuzzy search for the word "roam".
Example #14 Boolean searches
All supported queries can be constructed through Zend_Search_Lucene's query construction API. Moreover, query parsing and query constructing may be combined:
Example #15 Combining parsed and constructed queries