Browse Source

[DOCS] Fingerprint ingest processor (#68610)

Dan Hermann 4 năm trước cách đây
mục cha
commit
761b8aba8e

+ 1 - 0
docs/reference/ingest/ingest-node.asciidoc

@@ -880,6 +880,7 @@ include::processors/dot-expand.asciidoc[]
 include::processors/drop.asciidoc[]
 include::processors/enrich.asciidoc[]
 include::processors/fail.asciidoc[]
+include::processors/fingerprint.asciidoc[]
 include::processors/foreach.asciidoc[]
 include::processors/geoip.asciidoc[]
 include::processors/grok.asciidoc[]

+ 89 - 0
docs/reference/ingest/processors/fingerprint.asciidoc

@@ -0,0 +1,89 @@
+[role="xpack"]
+[testenv="basic"]
+[[fingerprint-processor]]
+=== Fingerprint processor
+++++
+<titleabbrev>Fingerprint</titleabbrev>
+++++
+
+Computes a hash of the document's content. You can use this hash for
+{wikipedia}/Fingerprint_(computing)[content fingerprinting].
+
+[[fingerprint-options]]
+.Fingerprint Options
+[options="header"]
+|======
+| Name               | Required | Default       | Description
+| `fields`           | yes      | n/a           | Array of fields to include in
+the fingerprint. For objects, the processor hashes both the field key and
+value. For other fields, the processor hashes only the field value.
+| `target_field`     | no       | `fingerprint` | Output field for the fingerprint.
+| `salt`             | no       | <none>        |
+{wikipedia}/Salt_(cryptography)[Salt value] for the hash function.
+| `method`           | no       | `SHA-1`       | The cryptographic hash function used to
+compute the fingerprint. Must be one of `MD5`, `SHA-1`, `SHA-256`, or `SHA-512`.
+| `ignore_missing`   | no       | `false`       | If `true`, the processor
+ignores any missing `fields`. If all fields are missing, the processor silently
+exits without modifying the document.
+
+include::common-options.asciidoc[]
+|======
+
+[discrete]
+[[fingerprint-processor-ex]]
+===== Example
+
+The following example illustrates the use of the fingerprint processor:
+
+[source,console]
+----
+POST _ingest/pipeline/_simulate
+{
+  "pipeline": {
+    "processors": [
+      {
+        "fingerprint": {
+          "fields": ["user"]
+        }
+      }
+    ]
+  },
+  "docs": [
+    {
+      "_source": {
+        "user": {
+          "last_name": "Smith",
+          "first_name": "John",
+          "date_of_birth": "1980-01-15",
+          "is_active": true
+        }
+      }
+    }
+  ]
+}
+----
+
+Which produces the following result:
+
+[source,console-result]
+----
+{
+  "docs": [
+    {
+      "doc": {
+        ...
+        "_source": {
+          "fingerprint" : "WbSUPW4zY1PBPehh2AA/sSxiRjw=",
+          "user" : {
+            "last_name" : "Smith",
+            "first_name" : "John",
+            "date_of_birth" : "1980-01-15",
+            "is_active" : true
+          }
+        }
+      }
+    }
+  ]
+}
+----
+// TESTRESPONSE[s/\.\.\./"_index":"_index","_id":"_id","_ingest":{"timestamp":$body.docs.0.doc._ingest.timestamp},/]