index_options

index_options パラメータは、検索およびハイライト目的のために反転インデックスに追加される情報を制御します。 textkeyword のような用語ベースのフィールドタイプのみがこの設定をサポートします。

このパラメータは、以下のいずれかの値を受け入れます。各値は、前にリストされた値から情報を取得します。たとえば、freqsdocs を含み、positionsfreqsdocs の両方を含みます。

  • docs
  • ドキュメント番号のみがインデックスされます。この用語はこのフィールドに存在しますか?という質問に答えることができます。
  • freqs
  • ドキュメント番号と用語頻度がインデックスされます。用語頻度は、繰り返し出現する用語を単一の用語よりも高くスコア付けするために使用されます。
  • positions (デフォルト)
  • ドキュメント番号、用語頻度、および用語の位置(または順序)がインデックスされます。位置は 近接またはフレーズクエリ に使用できます。
  • offsets
  • ドキュメント番号、用語頻度、位置、および開始および終了文字オフセット(これにより用語が元の文字列にマッピングされます)がインデックスされます。オフセットは、統一ハイライター によってハイライトを高速化するために使用されます。

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. mappings={
  4. "properties": {
  5. "text": {
  6. "type": "text",
  7. "index_options": "offsets"
  8. }
  9. }
  10. },
  11. )
  12. print(resp)
  13. resp1 = client.index(
  14. index="my-index-000001",
  15. id="1",
  16. document={
  17. "text": "Quick brown fox"
  18. },
  19. )
  20. print(resp1)
  21. resp2 = client.search(
  22. index="my-index-000001",
  23. query={
  24. "match": {
  25. "text": "brown fox"
  26. }
  27. },
  28. highlight={
  29. "fields": {
  30. "text": {}
  31. }
  32. },
  33. )
  34. print(resp2)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. mappings: {
  5. properties: {
  6. text: {
  7. type: 'text',
  8. index_options: 'offsets'
  9. }
  10. }
  11. }
  12. }
  13. )
  14. puts response
  15. response = client.index(
  16. index: 'my-index-000001',
  17. id: 1,
  18. body: {
  19. text: 'Quick brown fox'
  20. }
  21. )
  22. puts response
  23. response = client.search(
  24. index: 'my-index-000001',
  25. body: {
  26. query: {
  27. match: {
  28. text: 'brown fox'
  29. }
  30. },
  31. highlight: {
  32. fields: {
  33. text: {}
  34. }
  35. }
  36. }
  37. )
  38. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. mappings: {
  4. properties: {
  5. text: {
  6. type: "text",
  7. index_options: "offsets",
  8. },
  9. },
  10. },
  11. });
  12. console.log(response);
  13. const response1 = await client.index({
  14. index: "my-index-000001",
  15. id: 1,
  16. document: {
  17. text: "Quick brown fox",
  18. },
  19. });
  20. console.log(response1);
  21. const response2 = await client.search({
  22. index: "my-index-000001",
  23. query: {
  24. match: {
  25. text: "brown fox",
  26. },
  27. },
  28. highlight: {
  29. fields: {
  30. text: {},
  31. },
  32. },
  33. });
  34. console.log(response2);

Console

  1. PUT my-index-000001
  2. {
  3. "mappings": {
  4. "properties": {
  5. "text": {
  6. "type": "text",
  7. "index_options": "offsets"
  8. }
  9. }
  10. }
  11. }
  12. PUT my-index-000001/_doc/1
  13. {
  14. "text": "Quick brown fox"
  15. }
  16. GET my-index-000001/_search
  17. {
  18. "query": {
  19. "match": {
  20. "text": "brown fox"
  21. }
  22. },
  23. "highlight": {
  24. "fields": {
  25. "text": {}
  26. }
  27. }
  28. }
text フィールドは、offsets がインデックスされているため、デフォルトでハイライトのためにポスティングを使用します。