Fulltext Query Syntax

Fulltext Search implements a Lucene-based simple query syntax

The following properties are searched with an accommodation:

  • Name

  • Name_Add

  • ST Object Code

Query behavior

Any text with one or more terms is considered a valid starting point for query execution. OpenBooking Fulltext will match accommodations containing any or all of the terms in Name and City, including any variations found during analysis of the text.

You can embed operators in a query string to build a riche set of criteria against which matching documents are found.

AND operator +

The AND operator is a plus sign. For example, hotel+luxury will search for accommodations containing both hoteland luxury.

OR operator |

The OR operator is a vertical bar or pipe character. For example, hotel | luxury will search for documents containing either hotel or luxury or both.

NOT operator -

The NOT operator is a minus sign. For example, hotel –luxury will search for accommodations that have the hotel term and/or do not have luxury .

Suffix operator *

The suffix operator is an asterisk. For example, lux* will search for accommodations that have a term that starts with lux, ignoring case.

Phrase search operator " "

The phrase operator encloses a phrase in quotation marks. For example, while City Motel (without quotes) would search for documents containing Cityand/or Motel anywhere in any order, "City Motel" (with quotes) will only match documents that contain that whole phrase together and in that order (text analysis still applies).

Precedence operator ( )

The precedence operator encloses the string in parentheses. For example, motel+(engelberg | luxury) will search for documents containing the motel term and either engelbergor luxury (or both).|

Escaping search operators

In order to use the above symbols as actual part of the search text, they should be escaped by prefixing them with a backslash. For example, luxury\\+hotel will result in the term luxury+hotel. In order to make things simple for the more typical cases, there are two exceptions to this rule where escaping is not needed:

  • The NOT operator - only needs to be escaped if it's the first character after whitespace, not if it's in the middle of a term. For example, wi-fi is a single term

  • The suffix operator * needs to be escaped only if it's the last character before whitespace, not if it's in the middle of a term. For example, wi*fi is treated as a single token.