Merge pull request #293 from opensearch-project/sql-match-rev
Added SQL match
This commit is contained in:
commit
671a8cc81f
|
@ -643,3 +643,92 @@ search source=accounts | top 1 age by gender;
|
||||||
:--- | :--- |
|
:--- | :--- |
|
||||||
| F | 28
|
| F | 28
|
||||||
| M | 32
|
| M | 32
|
||||||
|
|
||||||
|
## match
|
||||||
|
|
||||||
|
Use the `match` command to search documents that match a `string`, `number`, `date`, or `boolean` value for a given field.
|
||||||
|
|
||||||
|
### Syntax
|
||||||
|
|
||||||
|
```sql
|
||||||
|
match(field_expression, query_expression[, option=<option_value>]*)
|
||||||
|
```
|
||||||
|
|
||||||
|
You can specify the following options:
|
||||||
|
|
||||||
|
- `analyzer`
|
||||||
|
- `auto_generate_synonyms_phrase`
|
||||||
|
- `fuzziness`
|
||||||
|
- `max_expansions`
|
||||||
|
- `prefix_length`
|
||||||
|
- `fuzzy_transpositions`
|
||||||
|
- `fuzzy_rewrite`
|
||||||
|
- `lenient`
|
||||||
|
- `operator`
|
||||||
|
- `minimum_should_match`
|
||||||
|
- `zero_terms_query`
|
||||||
|
- `boost`
|
||||||
|
|
||||||
|
*Example 1*: Search the `message` field:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": "this is a test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
PPL query:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
search source=my_index | match field=message query="this is a test"
|
||||||
|
```
|
||||||
|
|
||||||
|
*Example 2*: Search the `message` field with the `operator` parameter:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": {
|
||||||
|
"query": "this is a test",
|
||||||
|
"operator": "and"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
PPL query:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
search source=my_index | match field=message query="this is a test" operator=and
|
||||||
|
```
|
||||||
|
|
||||||
|
*Example 3*: Search the `message` field with the `operator` and `zero_terms_query` parameters:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": {
|
||||||
|
"query": "to be or not to be",
|
||||||
|
"operator": "and",
|
||||||
|
"zero_terms_query": "all"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
PPL query:
|
||||||
|
|
||||||
|
```ppl
|
||||||
|
search source=my_index | where match(message, "this is a test", operator=and, zero_terms_query=all)
|
||||||
|
```
|
||||||
|
|
|
@ -13,11 +13,97 @@ To learn about full-text queries in OpenSearch, see [Full-text queries]({{site.u
|
||||||
|
|
||||||
## Match
|
## Match
|
||||||
|
|
||||||
|
Use the `match` command to search documents that match a `string`, `number`, `date`, or `boolean` value for a given field.
|
||||||
|
|
||||||
|
### Syntax
|
||||||
|
|
||||||
|
```sql
|
||||||
|
match(field_expression, query_expression[, option=<option_value>]*)
|
||||||
|
```
|
||||||
|
|
||||||
|
You can specify the following options:
|
||||||
|
|
||||||
|
- `analyzer`
|
||||||
|
- `auto_generate_synonyms_phrase`
|
||||||
|
- `fuzziness`
|
||||||
|
- `max_expansions`
|
||||||
|
- `prefix_length`
|
||||||
|
- `fuzzy_transpositions`
|
||||||
|
- `fuzzy_rewrite`
|
||||||
|
- `lenient`
|
||||||
|
- `operator`
|
||||||
|
- `minimum_should_match`
|
||||||
|
- `zero_terms_query`
|
||||||
|
- `boost`
|
||||||
|
|
||||||
|
*Example 1*: Search the `message` field:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": "this is a test"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
SQL query:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT message FROM my_index WHERE match(message, "this is a test")
|
||||||
|
```
|
||||||
|
|
||||||
|
*Example 2*: Search the `message` field with the `operator` parameter:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": {
|
||||||
|
"query": "this is a test",
|
||||||
|
"operator": "and"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
SQL query:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT message FROM my_index WHERE match(message, "this is a test", operator=and)
|
||||||
|
```
|
||||||
|
|
||||||
|
*Example 3*: Search the `message` field with the `operator` and `zero_terms_query` parameters:
|
||||||
|
|
||||||
|
```json
|
||||||
|
GET my_index/_search
|
||||||
|
{
|
||||||
|
"query": {
|
||||||
|
"match": {
|
||||||
|
"message": {
|
||||||
|
"query": "to be or not to be",
|
||||||
|
"operator": "and",
|
||||||
|
"zero_terms_query": "all"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
SQL query:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
SELECT message FROM my_index WHERE match(message, "this is a test", operator=and, zero_terms_query=all)
|
||||||
|
```
|
||||||
|
|
||||||
To search for text in a single field, use `MATCHQUERY` or `MATCH_QUERY` functions.
|
To search for text in a single field, use `MATCHQUERY` or `MATCH_QUERY` functions.
|
||||||
|
|
||||||
Pass in your search query and the field name that you want to search against.
|
Pass in your search query and the field name that you want to search against.
|
||||||
|
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SELECT account_number, address
|
SELECT account_number, address
|
||||||
FROM accounts
|
FROM accounts
|
||||||
|
|
Loading…
Reference in New Issue