The Surround query parser plugin provides support within Solr for the Surround query language.
This parser generates queries that make use of position information (Span queries). It provides positional operators (w and n) that accept a numeric distance, as well as boolean operators (and, or, and not, wildcards (* and ?), quoting (with "), and boosting (via ^). The operators (W, N, AND, OR, NOT) can be expressed lower-cased or upper-cased, and the non-unary operators (everything but NOT) support both infix (a AND b AND c) and prefix AND(a, b, c) notation. The W and N operators express a positional relationship among their operands. N is ordered, and W is unordered. The distance is 1 by default, meaning the operands are adjacent, or may be provided as a prefix from 2-99. So, for example, 3W(a, b) means that terms a and b must appear within three positions of each other, or in other words, up to two terms may appear between a and b.
See also chapter 9 of Lucene In Action (2nd ed).
This was added to Solr through SOLR-2703
Queries are not analyzed in any way, so to get good results, applications must be aware of how a text field is indexed. A lightweight analysis chain such as lowercasing using the LowerCaseFilterFactory followed by the EnglishMinimalStemFilterFactory to remove plurals is recommended.
There is no room for default operator in surround query parser. For example, the query dog cat throws ParseException.