フレーズクエリの一致
match_phrase
クエリはテキストを分析し、分析されたテキストから phrase
クエリを作成します。例えば:
Python
resp = client.search(
query={
"match_phrase": {
"message": "this is a test"
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
match_phrase: {
message: 'this is a test'
}
}
}
)
puts response
Go
res, err := es.Search(
es.Search.WithBody(strings.NewReader(`{
"query": {
"match_phrase": {
"message": "this is a test"
}
}
}`)),
es.Search.WithPretty(),
)
fmt.Println(res, err)
Js
const response = await client.search({
query: {
match_phrase: {
message: "this is a test",
},
},
});
console.log(response);
コンソール
GET /_search
{
"query": {
"match_phrase": {
"message": "this is a test"
}
}
}
フレーズクエリは、任意の順序で設定可能な slop
(デフォルトは 0) までの用語と一致します。転置された用語はスロップが 2 です。
analyzer
は、テキストの分析プロセスを実行するアナライザーを制御するために設定できます。デフォルトでは、フィールドの明示的なマッピング定義またはデフォルトの検索アナライザーが使用されます。例えば:
Python
resp = client.search(
query={
"match_phrase": {
"message": {
"query": "this is a test",
"analyzer": "my_analyzer"
}
}
},
)
print(resp)
Ruby
response = client.search(
body: {
query: {
match_phrase: {
message: {
query: 'this is a test',
analyzer: 'my_analyzer'
}
}
}
}
)
puts response
Go
res, err := es.Search(
es.Search.WithBody(strings.NewReader(`{
"query": {
"match_phrase": {
"message": {
"query": "this is a test",
"analyzer": "my_analyzer"
}
}
}
}`)),
es.Search.WithPretty(),
)
fmt.Println(res, err)
Js
const response = await client.search({
query: {
match_phrase: {
message: {
query: "this is a test",
analyzer: "my_analyzer",
},
},
},
});
console.log(response);
コンソール
GET /_search
{
"query": {
"match_phrase": {
"message": {
"query": "this is a test",
"analyzer": "my_analyzer"
}
}
}
}
このクエリは、match
クエリで説明されているように、zero_terms_query
も受け入れます。