Not sure that your stated problem makes sense. If you have a field 'alphabet' which has one of those 3 values, where the field is a SINGLE value field of either 'a', 'a,b' or 'a,b,c,d' then the Splunk command index=foo alphabet=a will only find the event where alphabet is ONLY a | makeresults
| eval alphabet=split("a,b,c,d:a,b:a",":")
| mvexpand alphabet
| search alphabet=a whereas if your field alphabet is a MULTIVALUE field that has those values, then it will find all values, e.g. | makeresults
| eval alphabet=split("a,b,c,d:a,b:a",":")
| mvexpand alphabet
| eval alphabet=split(alphabet,",")
| search alphabet=a Your SPL 'index=test WHERE ... ' - That is specifying a search term WHERE, not doing a conditional clause | where. The Splunk 'search' command will do string matching on the value, so alphabet=a should only find 'a' and alphabet=*a* would find all. Using the Splunk 'where' command it can then do much more, e.g. | where match(alphabet,"^a$") or even just | where alphabet="a" but again - SINGLE and MULTIVALUE fields will behave differently, in that BOTH those will match the MULTIVALUE field where ONE of the values is 'a'. Hope this helps
... View more