I have two indexes "abc" and "def". There is a field in index "abc" ---> "operator_id".
Similarly, there is a field in index "def" --> "worker_id".
My end goal is to find out those operator_ids which are present only in index "abc".
In my below search, I'm first finding out the common values between worker_id and operator_id. And I'm getting the right result,
but then I'm trying to find ids in index "abc" by eliminating the common values between the two columns but I'm getting all the values present in "abc".
index=abc work_status=1
operator_id =* NOT
[search index=abc work_status=1
[search index=def
|stats count by worker_id | rename worker_id as operator_id | table operator_id]
|stats count by operator_id]
|stats count by operator_id
Hi amaurya1,
if you have few records in def index (less than 50,000) you could run something like this:
index=abc NOT [ search index=def | rename worker_id AS operator_id | fields operator_id ]
| ...
If instead you have more than 50,000 records in index def, you have to run something like this:
index=abc OR index=def
| eval operator_id=coalesce(operator_id,worker_id)
| stats values(index) AS index count BY operator_id
| search count=1 AND index=abc
| ...
Bye.
Giuseppe
Hi amaurya1,
if you have few records in def index (less than 50,000) you could run something like this:
index=abc NOT [ search index=def | rename worker_id AS operator_id | fields operator_id ]
| ...
If instead you have more than 50,000 records in index def, you have to run something like this:
index=abc OR index=def
| eval operator_id=coalesce(operator_id,worker_id)
| stats values(index) AS index count BY operator_id
| search count=1 AND index=abc
| ...
Bye.
Giuseppe
Thanks @gcusello .. This is working fine...