To search Senna indexes, query syntax like BOOLEAN MODE of MySQL is provisioned. You can use them not only for Senna + MySQL binding and other bindings.
Pragma for setting query handling can be added on top of query string:
- Pragma have to be located on top of query string.
- To use multiple pragma, don't put blank space between each of them (don't put blank space on top of the query either).
*EN1[,N2] (N1 and N2 are numeric number)
When the search result is lesser then N1, Senna automatically change handling way as ordering by perfect matching -> unsplit word matching -> partial matching. In that case, scores for items that isn't perfect matching decrease N2 point. If N2 is omitted, N2 is set default value (=2). In case negative number set on N1, Senna handles as below.
-1: only search by perfect matching. -2: only search by unsplit word matching. -3: only search by perfect matching and unsplit word matching. -4: only search by pertial matcing. -5: only search by perfect matching and pertial matching. -6: only search by unsplit matching and pertial matching. -7: search by perfect matcing, unsplit word matching, and pertial matching.
Search results are less than 10, Senna changes search way and decrements scores 3 points sequencially.
Specify which operator uses when operator is omitted.
Specifyable operators are OR, +, and -. OR works as BOOLEAN MODE of MySQL. + works as most web search engine.
*D+ abc def
Search documents that have both "abc" and "def".
*DOR abc def
Search documents that have whether "abc" or "def".
Search documents that has word in the section specified by N. Score are multiplied by W per a section.If W is not specified, W is 1.W is able to be specified to negative value.
A plus operator indicates that this word must be present in matching document. (What is called AND)
A minus operator indicates that this word must not be present in any matching document. (What is called NOT)
A OR operator indicates the word is optional, but the document that contains the specified word is rated higher.
(What is called OR) note: OR have to be written by capital.
A ~ operator indicates that this word can be presented, but the document that contains the specified word is rated lower.
<word or >word
Decrease the word's contribution (<). Increase the word's contribution (>).
This operator grouplize the word and operators.
For example: -(+Foo +Bar)
This operator indicates that a word which beginning with the specified word in matching document.
If the operator is used, only matches documents contains the specified phrase.
Search documents that is related to the specfied string. [Number] sets the number of selected characters.
Search documents that has words in "Search" with located adjacent each other. The [N] sets the maximum number of neighborhood words. For N-gram, it sets the number of characters.