NAME
App::ElasticSearch::Utilities::QueryString::Text - Provides a better interface for text and keyword queries
VERSION
version 8.8
SYNOPSIS
App::ElasticSearch::Utilities::QueryString::Text
Provides field prefixes to manipulate the text search capabilities.
Terms Query via '='
Provide an '=' prefix to a query string parameter to promote that parameter to a term
filter.
This allows for exact matches of a field without worrying about escaping Lucene special character filters.
E.g.:
user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1"
Is evaluated into a weird query that doesn't do what you want. However:
=user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1"
Is translated into:
{ term => { user_agent => "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1" } }
Wildcard Query via '*'
Provide an '*' prefix to a query string parameter to promote that parameter to a wildcard
filter.
This uses the wild card match for text fields to making matching more intuitive.
E.g.:
*user_agent:"Mozilla*"
Is translated into:
{ wildcard => { user_agent => "Mozilla* } }
Regexp Query via '/'
Provide an '/' prefix to a query string parameter to promote that parameter to a regexp
filter.
If you want to use regexp matching for finding data, you can use:
/message:'\\bden(ial|ied|y)'
Is translated into:
{ regexp => { message => "\\bden(ial|ied|y)" } }
Fuzzy Matching via '~'
Provide an '~' prefix to a query string parameter to promote that parameter to a fuzzy
filter.
~message:deny
Is translated into:
{ fuzzy => { message => "deny" } }
Phrase Matching via '+'
Provide an '+' prefix to a query string parameter to promote that parameter to a match_phrase
filter.
+message:"login denied"
Is translated into:
{ match_phrase => { message => "login denied" } }
Automatic Match Queries for Text Fields
If the field meta data is provided and the field is a text
type, the query will automatically be mapped to a match
query.
# message field is text
message:"foo"
Is translated into:
{ match => { message => "foo" } }
AUTHOR
Brad Lhotsky <brad@divisionbyzero.net>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2024 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License