フレーズクエリの一致

match_phrase クエリはテキストを分析し、分析されたテキストから phrase クエリを作成します。例えば:

Python

  1. resp = client.search(
  2. query={
  3. "match_phrase": {
  4. "message": "this is a test"
  5. }
  6. },
  7. )
  8. print(resp)

Ruby

  1. response = client.search(
  2. body: {
  3. query: {
  4. match_phrase: {
  5. message: 'this is a test'
  6. }
  7. }
  8. }
  9. )
  10. puts response

Go

  1. res, err := es.Search(
  2. es.Search.WithBody(strings.NewReader(`{
  3. "query": {
  4. "match_phrase": {
  5. "message": "this is a test"
  6. }
  7. }
  8. }`)),
  9. es.Search.WithPretty(),
  10. )
  11. fmt.Println(res, err)

Js

  1. const response = await client.search({
  2. query: {
  3. match_phrase: {
  4. message: "this is a test",
  5. },
  6. },
  7. });
  8. console.log(response);

コンソール

  1. GET /_search
  2. {
  3. "query": {
  4. "match_phrase": {
  5. "message": "this is a test"
  6. }
  7. }
  8. }

フレーズクエリは、任意の順序で設定可能な slop (デフォルトは 0) までの用語と一致します。転置された用語はスロップが 2 です。

analyzer は、テキストの分析プロセスを実行するアナライザーを制御するために設定できます。デフォルトでは、フィールドの明示的なマッピング定義またはデフォルトの検索アナライザーが使用されます。例えば:

Python

  1. resp = client.search(
  2. query={
  3. "match_phrase": {
  4. "message": {
  5. "query": "this is a test",
  6. "analyzer": "my_analyzer"
  7. }
  8. }
  9. },
  10. )
  11. print(resp)

Ruby

  1. response = client.search(
  2. body: {
  3. query: {
  4. match_phrase: {
  5. message: {
  6. query: 'this is a test',
  7. analyzer: 'my_analyzer'
  8. }
  9. }
  10. }
  11. }
  12. )
  13. puts response

Go

  1. res, err := es.Search(
  2. es.Search.WithBody(strings.NewReader(`{
  3. "query": {
  4. "match_phrase": {
  5. "message": {
  6. "query": "this is a test",
  7. "analyzer": "my_analyzer"
  8. }
  9. }
  10. }
  11. }`)),
  12. es.Search.WithPretty(),
  13. )
  14. fmt.Println(res, err)

Js

  1. const response = await client.search({
  2. query: {
  3. match_phrase: {
  4. message: {
  5. query: "this is a test",
  6. analyzer: "my_analyzer",
  7. },
  8. },
  9. },
  10. });
  11. console.log(response);

コンソール

  1. GET /_search
  2. {
  3. "query": {
  4. "match_phrase": {
  5. "message": {
  6. "query": "this is a test",
  7. "analyzer": "my_analyzer"
  8. }
  9. }
  10. }
  11. }

このクエリは、match クエリで説明されているように、zero_terms_query も受け入れます。