Qsol
Home | About | Highlighter | QuickStart | Query Syntax | Download | JavaDoc | Source

About

 A little bit about Qsol...
Qsol maps a Precedence/Proximity query language on top of Lucene's Query system.

1.Proximity Operators in the search syntax

2.Paragraph/Sentence proximity searching

3.FieldBreaker for proximity searching

4.Query abbreviation tokens

5.SuggestedQuery support

6.Very customizable search syntax

7.Easily replaceable Date Parser

8.A fully precedence aware syntax

1. Proximity Operators in the search syntax

Qsol allows arbitrary mixing of proximity and boolean operators. Qsol expands queries so that every operator in the language can act like a true binary operator with no limitations. This allows for queries such as: (mark & bob) ~3 (horse | sarah).

2. Paragraph/Sentence proximity searching

Qsol allows you to inject sentence and paragraph markers in the text to be indexed so that you can perform sentence and paragraph proximity searches. This allows for search such as: mark ~3p paul (mark within 3 paragraphs of paul), or: tree /s horse (tree within 1 sentence of horse)

3. Query abbreviation tokens / Query time thesaurus expansion

Qsol allows you specify keywords that will expand to any valid Qsol syntax when found in a search query. horse could expand to (equine & Pretty) | horse. You can even map a token expansion that acts as an operator: CLOSE could map to within 10 (~10). Mappings can also be specified using Java's regular expression syntax. Qsol uses these mapping features to provide a thesaurus option and to handle user supplied search operators.

4. SuggestedQuery support

Qsol provides support for suggesting queries based on a SpellChecker index that you supply (SpellChecker is in Lucene Contrib). The suggested query remains in the form of the submitted query syntax and is not restricted to Qsol's default syntax. Also, unlike some solutions out there, unless you ask for the suggested query after performing the search, the majority of the work in finding suggestions is avoided. A search of: field1(dawk shadoe) & date(12/05/1992) | horke might suggest: field1(dark shadow) & date(12/05/1992) | horse

5. FieldBreaker for proximity searching

By setting a FieldBreak marker on the Parser you can eliminate proximity search hits that cross the marker. This can be used to break up an all_fields field or for more creative purposes.

6. Very customizable search syntax

Qsol's search syntax is very customizable. If you need to replicate a legacy syntax or you do not like Qsol's standard syntax, you can easily hide default operators, add new operators, and change operator precedence. Qsol is heavily focused on allowing you to mold the syntax due to odd or niche requirements.

7. Customizable Date Parser

Qsol easily accepts new date parsing implementations-- simply implement the DateParser interface.

8. A fully precedence aware syntax

Qsol has full and accurate precedence support -- the operator precedence order can even be configured on the fly.


email me