組み込みアナライザーの設定

組み込みアナライザーは、特に設定を行わずに直接使用できます。ただし、一部は動作を変更するための設定オプションをサポートしています。たとえば、standardアナライザーは、ストップワードのリストをサポートするように設定できます:

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. settings={
  4. "analysis": {
  5. "analyzer": {
  6. "std_english": {
  7. "type": "standard",
  8. "stopwords": "_english_"
  9. }
  10. }
  11. }
  12. },
  13. mappings={
  14. "properties": {
  15. "my_text": {
  16. "type": "text",
  17. "analyzer": "standard",
  18. "fields": {
  19. "english": {
  20. "type": "text",
  21. "analyzer": "std_english"
  22. }
  23. }
  24. }
  25. }
  26. },
  27. )
  28. print(resp)
  29. resp1 = client.indices.analyze(
  30. index="my-index-000001",
  31. field="my_text",
  32. text="The old brown cow",
  33. )
  34. print(resp1)
  35. resp2 = client.indices.analyze(
  36. index="my-index-000001",
  37. field="my_text.english",
  38. text="The old brown cow",
  39. )
  40. print(resp2)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. settings: {
  5. analysis: {
  6. analyzer: {
  7. std_english: {
  8. type: 'standard',
  9. stopwords: '_english_'
  10. }
  11. }
  12. }
  13. },
  14. mappings: {
  15. properties: {
  16. my_text: {
  17. type: 'text',
  18. analyzer: 'standard',
  19. fields: {
  20. english: {
  21. type: 'text',
  22. analyzer: 'std_english'
  23. }
  24. }
  25. }
  26. }
  27. }
  28. }
  29. )
  30. puts response
  31. response = client.indices.analyze(
  32. index: 'my-index-000001',
  33. body: {
  34. field: 'my_text',
  35. text: 'The old brown cow'
  36. }
  37. )
  38. puts response
  39. response = client.indices.analyze(
  40. index: 'my-index-000001',
  41. body: {
  42. field: 'my_text.english',
  43. text: 'The old brown cow'
  44. }
  45. )
  46. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. settings: {
  4. analysis: {
  5. analyzer: {
  6. std_english: {
  7. type: "standard",
  8. stopwords: "_english_",
  9. },
  10. },
  11. },
  12. },
  13. mappings: {
  14. properties: {
  15. my_text: {
  16. type: "text",
  17. analyzer: "standard",
  18. fields: {
  19. english: {
  20. type: "text",
  21. analyzer: "std_english",
  22. },
  23. },
  24. },
  25. },
  26. },
  27. });
  28. console.log(response);
  29. const response1 = await client.indices.analyze({
  30. index: "my-index-000001",
  31. field: "my_text",
  32. text: "The old brown cow",
  33. });
  34. console.log(response1);
  35. const response2 = await client.indices.analyze({
  36. index: "my-index-000001",
  37. field: "my_text.english",
  38. text: "The old brown cow",
  39. });
  40. console.log(response2);

コンソール

  1. PUT my-index-000001
  2. {
  3. "settings": {
  4. "analysis": {
  5. "analyzer": {
  6. "std_english": {
  7. "type": "standard",
  8. "stopwords": "_english_"
  9. }
  10. }
  11. }
  12. },
  13. "mappings": {
  14. "properties": {
  15. "my_text": {
  16. "type": "text",
  17. "analyzer": "standard",
  18. "fields": {
  19. "english": {
  20. "type": "text",
  21. "analyzer": "std_english"
  22. }
  23. }
  24. }
  25. }
  26. }
  27. }
  28. POST my-index-000001/_analyze
  29. {
  30. "field": "my_text",
  31. "text": "The old brown cow"
  32. }
  33. POST my-index-000001/_analyze
  34. {
  35. "field": "my_text.english",
  36. "text": "The old brown cow"
  37. }
std_englishアナライザーは、standardアナライザーに基づいて定義されていますが、事前に定義された英語のストップワードリストを削除するように設定されています。
my_textフィールドは、設定なしでstandardアナライザーを直接使用します。このフィールドからはストップワードは削除されません。
結果として得られる用語は: [ the, old, brown, cow ]
my_text.englishフィールドはstd_englishアナライザーを使用しているため、英語のストップワードが削除されます。結果として得られる用語は:
[ old, brown, cow ]