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