指紋プロセッサ

文書の内容のハッシュを計算します。このハッシュはコンテンツフィンガープリンティングに使用できます。


表19. フィンガープリントオプション

名前 必須 デフォルト 説明
fields はい n/a フィンガープリントに含めるフィールドの配列。オブジェクトの場合、プロセッサはフィールドキーと値の両方をハッシュ化します。他のフィールドの場合、プロセッサはフィールド値のみをハッシュ化します。
target_field いいえ fingerprint フィンガープリントの出力フィールド。
salt いいえ

| ハッシュ関数のソルト値。 |
| method | いいえ | SHA-1 | フィンガープリントを計算するために使用されるハッシュメソッド。MD5SHA-1SHA-256SHA-512、またはMurmurHash3のいずれかでなければなりません。 |
| ignore_missing | いいえ | false | trueの場合、プロセッサは欠落しているfieldsを無視します。すべてのフィールドが欠落している場合、プロセッサは文書を変更せずに静かに終了します。 |
| description | いいえ | - | プロセッサの説明。プロセッサの目的や構成を説明するのに役立ちます。 |
| if | いいえ | - | プロセッサを条件付きで実行します。プロセッサを条件付きで実行するを参照してください。 |
| ignore_failure | いいえ | false | プロセッサの失敗を無視します。パイプラインの失敗を処理するを参照してください。 |
| on_failure | いいえ | - | プロセッサの失敗を処理します。パイプラインの失敗を処理するを参照してください。 |
| tag | いいえ | - | プロセッサの識別子。デバッグやメトリクスに役立ちます。 |

以下の例は、フィンガープロセッサの使用を示しています:

Python

  1. resp = client.ingest.simulate(
  2. pipeline={
  3. "processors": [
  4. {
  5. "fingerprint": {
  6. "fields": [
  7. "user"
  8. ]
  9. }
  10. }
  11. ]
  12. },
  13. docs=[
  14. {
  15. "_source": {
  16. "user": {
  17. "last_name": "Smith",
  18. "first_name": "John",
  19. "date_of_birth": "1980-01-15",
  20. "is_active": True
  21. }
  22. }
  23. }
  24. ],
  25. )
  26. print(resp)

Ruby

  1. response = client.ingest.simulate(
  2. body: {
  3. pipeline: {
  4. processors: [
  5. {
  6. fingerprint: {
  7. fields: [
  8. 'user'
  9. ]
  10. }
  11. }
  12. ]
  13. },
  14. docs: [
  15. {
  16. _source: {
  17. user: {
  18. last_name: 'Smith',
  19. first_name: 'John',
  20. date_of_birth: '1980-01-15',
  21. is_active: true
  22. }
  23. }
  24. }
  25. ]
  26. }
  27. )
  28. puts response

Js

  1. const response = await client.ingest.simulate({
  2. pipeline: {
  3. processors: [
  4. {
  5. fingerprint: {
  6. fields: ["user"],
  7. },
  8. },
  9. ],
  10. },
  11. docs: [
  12. {
  13. _source: {
  14. user: {
  15. last_name: "Smith",
  16. first_name: "John",
  17. date_of_birth: "1980-01-15",
  18. is_active: true,
  19. },
  20. },
  21. },
  22. ],
  23. });
  24. console.log(response);

コンソール

  1. POST _ingest/pipeline/_simulate
  2. {
  3. "pipeline": {
  4. "processors": [
  5. {
  6. "fingerprint": {
  7. "fields": ["user"]
  8. }
  9. }
  10. ]
  11. },
  12. "docs": [
  13. {
  14. "_source": {
  15. "user": {
  16. "last_name": "Smith",
  17. "first_name": "John",
  18. "date_of_birth": "1980-01-15",
  19. "is_active": true
  20. }
  21. }
  22. }
  23. ]
  24. }

次の結果が得られます:

コンソール結果

  1. {
  2. "docs": [
  3. {
  4. "doc": {
  5. ...
  6. "_source": {
  7. "fingerprint" : "WbSUPW4zY1PBPehh2AA/sSxiRjw=",
  8. "user" : {
  9. "last_name" : "Smith",
  10. "first_name" : "John",
  11. "date_of_birth" : "1980-01-15",
  12. "is_active" : true
  13. }
  14. }
  15. }
  16. }
  17. ]
  18. }