<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help with search query using multiple tokens and filters in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741353#M240599</link>
    <description>&lt;P&gt;I decided to use 2 tokens instead of 3. But how to use token2 (from users dropdown) only if it was chosen?&lt;/P&gt;&lt;LI-CODE lang="markup"&gt; index=sysmon_wec AND (EventCode=22 OR event_id=22) AND process_name="$procname$"
                        | makemv tokenizer="([^\r\n]+)(\r\n)?" User
                        | mvexpand User
                        | where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE")
                       
                        | head 100
                        | table process_name, User, ComputerName, QueryName, QueryResults&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But add&amp;nbsp; something like this on splunk language :&lt;/P&gt;&lt;P&gt;&amp;nbsp; | if isnotnull(User) then User="$user$"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 10 Mar 2025 20:33:48 GMT</pubDate>
    <dc:creator>ekmek4</dc:creator>
    <dc:date>2025-03-10T20:33:48Z</dc:date>
    <item>
      <title>Help with search query using multiple tokens and filters</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741170#M240557</link>
      <description>&lt;P&gt;HI, im trying to create filter for network connections. But i cannot make work few tokens in the same time.&lt;/P&gt;&lt;P&gt;I want to create OR expression. In my head its like this:&lt;/P&gt;&lt;P&gt;1. search should work for if i put process_name in textfield&lt;/P&gt;&lt;P&gt;2. If process_name select from dropdown along with textfield&amp;nbsp; - search for both processes.&amp;nbsp; (process_name IN ("$token1$","$token2$"))&lt;/P&gt;&lt;P&gt;3. If First two are not chosen, but User from User dropdown selected =&amp;gt; Filter by User.&lt;/P&gt;&lt;P&gt;4. If one or two process_name tokens used and User selected - filter by chosen proces_names and then by user.&lt;/P&gt;&lt;P&gt;I have $procname2$ token for text field and $procname2$ for dropdown of processes.&amp;nbsp;&lt;/P&gt;&lt;P&gt;Both process_name tokens work if dropdown is selected, then search will use both dropdown token and text token. User token doesn't work at all&lt;/P&gt;&lt;P&gt;Query for search:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) AND ((process_name IN ("$procname$", "$procname2$") OR User IN ("$user$")) )| makemv tokenizer="([^\r\n]+)(\r\n)?" User | mvexpand User |where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE") |dedup process_name|head 100| table process_name,User,ComputerName,QueryName,QueryResults&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is a full code of my dashboard&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;form version="1.1" theme="light"&amp;gt;
&amp;lt;label&amp;gt;Find Network connections(DNS)&amp;lt;/label&amp;gt;
&amp;lt;fieldset submitButton="false"&amp;gt;
&amp;lt;input type="text" token="procname2"&amp;gt;
&amp;lt;label&amp;gt;Enter procname:eg.opera.exe&amp;lt;/label&amp;gt;
&amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;
&amp;lt;/input&amp;gt;
&amp;lt;input type="dropdown" token="procname" searchWhenChanged="true"&amp;gt;
&amp;lt;label&amp;gt;Procname&amp;lt;/label&amp;gt;
&amp;lt;fieldForLabel&amp;gt;process_name&amp;lt;/fieldForLabel&amp;gt;
&amp;lt;fieldForValue&amp;gt;process_name&amp;lt;/fieldForValue&amp;gt;
&amp;lt;search&amp;gt;
&amp;lt;query&amp;gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) |dedup process_name|head 1000|table process_name&amp;lt;/query&amp;gt;
&amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
&amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
&amp;lt;/search&amp;gt;
&amp;lt;/input&amp;gt;
&amp;lt;input type="dropdown" token="User" searchWhenChanged="true"&amp;gt;
&amp;lt;label&amp;gt;User&amp;lt;/label&amp;gt;
&amp;lt;fieldForLabel&amp;gt;User&amp;lt;/fieldForLabel&amp;gt;
&amp;lt;fieldForValue&amp;gt;User&amp;lt;/fieldForValue&amp;gt;
&amp;lt;search&amp;gt;
&amp;lt;query&amp;gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) | makemv tokenizer="([^\r\n]+)(\r\n)?" User | mvexpand User |where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE") |dedup User|head 1000|table User&amp;lt;/query&amp;gt;
&amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
&amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
&amp;lt;/search&amp;gt;
&amp;lt;/input&amp;gt;
&amp;lt;/fieldset&amp;gt;
&amp;lt;row&amp;gt;
&amp;lt;panel&amp;gt;
&amp;lt;table&amp;gt;
&amp;lt;title&amp;gt;process_name&amp;lt;/title&amp;gt;
&amp;lt;search&amp;gt;
&amp;lt;query&amp;gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) AND ((process_name IN ("$procname$", "$procname2$") OR User IN ("$user$")) )| makemv tokenizer="([^\r\n]+)(\r\n)?" User | mvexpand User |where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE") |dedup process_name|head 100| table process_name,User,ComputerName,QueryName,QueryResults&amp;lt;/query&amp;gt;
&amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
&amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
&amp;lt;/search&amp;gt;
&amp;lt;option name="drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;/panel&amp;gt;
&amp;lt;/row&amp;gt;
&amp;lt;/form&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Mar 2025 20:41:33 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741170#M240557</guid>
      <dc:creator>ekmek4</dc:creator>
      <dc:date>2025-03-07T20:41:33Z</dc:date>
    </item>
    <item>
      <title>Re: Help with search query using multiple tokens and filters</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741173#M240558</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/238989"&gt;@ekmek4&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;To achieve this type of filtering logic in your dashboard, you need to adjust the search query to handle the different combinations of inputs correctly. The main issue is ensuring that the query logic reflects the conditions you described. Here's how you can modify your query to achieve this:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;STRONG&gt;Check if&lt;SPAN&gt;&amp;nbsp;procname&lt;SPAN&gt;&amp;nbsp;or&lt;SPAN&gt;&amp;nbsp;procname2&lt;SPAN&gt;&amp;nbsp;is set: If either is set, filter by those.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;Check if&lt;SPAN&gt;&amp;nbsp;User&lt;SPAN&gt;&amp;nbsp;is set: If&lt;SPAN&gt;&amp;nbsp;User&lt;SPAN&gt;&amp;nbsp;is set and no process names are set, filter by&lt;SPAN&gt;&amp;nbsp;User.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;&lt;STRONG&gt;Combine both conditions: If both process names and&lt;SPAN&gt;&amp;nbsp;User&lt;SPAN&gt;&amp;nbsp;are set, filter by both.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;Here's a revised version of your dashboard code with the updated query logic:&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;form version="1.1" theme="light"&amp;gt;
    &amp;lt;label&amp;gt;Find Network connections(DNS)&amp;lt;/label&amp;gt;
    &amp;lt;fieldset submitButton="false"&amp;gt;
        &amp;lt;input type="text" token="procname2"&amp;gt;
            &amp;lt;label&amp;gt;Enter procname: eg. opera.exe&amp;lt;/label&amp;gt;
            &amp;lt;default&amp;gt;&amp;lt;/default&amp;gt;
        &amp;lt;/input&amp;gt;
        &amp;lt;input type="dropdown" token="procname" searchWhenChanged="true"&amp;gt;
            &amp;lt;label&amp;gt;Procname&amp;lt;/label&amp;gt;
            &amp;lt;fieldForLabel&amp;gt;process_name&amp;lt;/fieldForLabel&amp;gt;
            &amp;lt;fieldForValue&amp;gt;process_name&amp;lt;/fieldForValue&amp;gt;
            &amp;lt;search&amp;gt;
                &amp;lt;query&amp;gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) | dedup process_name | head 1000 | table process_name&amp;lt;/query&amp;gt;
                &amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
                &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
            &amp;lt;/search&amp;gt;
        &amp;lt;/input&amp;gt;
        &amp;lt;input type="dropdown" token="user" searchWhenChanged="true"&amp;gt;
            &amp;lt;label&amp;gt;User&amp;lt;/label&amp;gt;
            &amp;lt;fieldForLabel&amp;gt;User&amp;lt;/fieldForLabel&amp;gt;
            &amp;lt;fieldForValue&amp;gt;User&amp;lt;/fieldForValue&amp;gt;
            &amp;lt;search&amp;gt;
                &amp;lt;query&amp;gt;index=sysmon_wec AND (EventCode=22 OR event_id=22) | makemv tokenizer="([^\r\n]+)(\r\n)?" User | mvexpand User | where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE") | dedup User | head 1000 | table User&amp;lt;/query&amp;gt;
                &amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
                &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
            &amp;lt;/search&amp;gt;
        &amp;lt;/input&amp;gt;
    &amp;lt;/fieldset&amp;gt;
    &amp;lt;row&amp;gt;
        &amp;lt;panel&amp;gt;
            &amp;lt;table&amp;gt;
                &amp;lt;title&amp;gt;process_name&amp;lt;/title&amp;gt;
                &amp;lt;search&amp;gt;
                    &amp;lt;query&amp;gt;
                        index=sysmon_wec AND (EventCode=22 OR event_id=22)
                        | eval proc_filter=if(len("$procname$") &amp;gt; 0 OR len("$procname2$") &amp;gt; 0, 1, 0)
                        | eval user_filter=if(len("$user$") &amp;gt; 0, 1, 0)
                        | where (proc_filter=1 AND process_name IN ("$procname$", "$procname2$")) OR (user_filter=1 AND User="$user$")
                        | makemv tokenizer="([^\r\n]+)(\r\n)?" User
                        | mvexpand User
                        | where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE")
                        | dedup process_name
                        | head 100
                        | table process_name, User, ComputerName, QueryName, QueryResults
                    &amp;lt;/query&amp;gt;
                    &amp;lt;earliest&amp;gt;-24h@h&amp;lt;/earliest&amp;gt;
                    &amp;lt;latest&amp;gt;now&amp;lt;/latest&amp;gt;
                &amp;lt;/search&amp;gt;
                &amp;lt;option name="drilldown"&amp;gt;none&amp;lt;/option&amp;gt;
            &amp;lt;/table&amp;gt;
        &amp;lt;/panel&amp;gt;
    &amp;lt;/row&amp;gt;
&amp;lt;/form&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;Key Changes:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;STRONG&gt;proc_filter&lt;SPAN&gt;&amp;nbsp;and&lt;SPAN&gt;&amp;nbsp;user_filter: &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;These are temporary fields used to determine if the process name or user filters should be applied.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;where&lt;SPAN&gt;&amp;nbsp;clause: &lt;/SPAN&gt;&lt;/STRONG&gt;The logic now checks if either the process name or user filter should be applied, and applies them accordingly.&lt;/LI&gt;&lt;LI&gt;&lt;STRONG&gt;&lt;STRONG&gt;Token Names: &lt;/STRONG&gt;&lt;/STRONG&gt;Ensure that the token names in your query match those defined in your inputs ($procname$,&lt;STRONG&gt;&lt;STRONG&gt;&lt;SPAN&gt;&amp;nbsp;$procname2$, and&lt;SPAN&gt;&amp;nbsp;$user$).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/STRONG&gt;&lt;P&gt;This setup should allow you to filter based on the conditions you described. If both process names and user are selected, it will filter by both. If only one is selected, it will filter by that one.&lt;/P&gt;&lt;P&gt;Please let me know how you get on and consider adding karma to this or any other answer if it has helped.&lt;BR /&gt;Regards&lt;/P&gt;&lt;P&gt;Will&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 07 Mar 2025 22:02:24 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741173#M240558</guid>
      <dc:creator>livehybrid</dc:creator>
      <dc:date>2025-03-07T22:02:24Z</dc:date>
    </item>
    <item>
      <title>Re: Help with search query using multiple tokens and filters</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741345#M240597</link>
      <description>&lt;P&gt;This looks as working example, but for some reason it doesn't work&lt;/P&gt;&lt;P&gt;No search when textbox changed or dropdown. Filtering only if im choosing User from dropdown&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2025 17:22:35 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741345#M240597</guid>
      <dc:creator>ekmek4</dc:creator>
      <dc:date>2025-03-10T17:22:35Z</dc:date>
    </item>
    <item>
      <title>Re: Help with search query using multiple tokens and filters</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741353#M240599</link>
      <description>&lt;P&gt;I decided to use 2 tokens instead of 3. But how to use token2 (from users dropdown) only if it was chosen?&lt;/P&gt;&lt;LI-CODE lang="markup"&gt; index=sysmon_wec AND (EventCode=22 OR event_id=22) AND process_name="$procname$"
                        | makemv tokenizer="([^\r\n]+)(\r\n)?" User
                        | mvexpand User
                        | where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE")
                       
                        | head 100
                        | table process_name, User, ComputerName, QueryName, QueryResults&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But add&amp;nbsp; something like this on splunk language :&lt;/P&gt;&lt;P&gt;&amp;nbsp; | if isnotnull(User) then User="$user$"&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 10 Mar 2025 20:33:48 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741353#M240599</guid>
      <dc:creator>ekmek4</dc:creator>
      <dc:date>2025-03-10T20:33:48Z</dc:date>
    </item>
    <item>
      <title>Re: Help with search query using multiple tokens and filters</title>
      <link>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741425#M240619</link>
      <description>&lt;P&gt;I found a right way, but i dont know how to reset search for another try.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;  index=sysmon_wec AND (EventCode=22 OR event_id=22)
                        | makemv tokenizer="([^\r\n]+)(\r\n)?" User
                        | mvexpand User
                        | where NOT (User="SYSTEM" OR User="NT AUTHORITY\SYSTEM" OR User="NT AUTHORITY\NETWORK SERVICE" OR User="NT AUTHORITY\LOCAL SERVICE")
                        | eval proc_filter=if(len("$procname$") &amp;gt; 0 , 1, 0)  
                        | eval user_filter=if(len("$user$") &amp;gt; 5, 1, 0)
                        | where (proc_filter=1 AND process_name="$procname$" AND user_filter=0) OR (proc_filter=1 AND process_name="$procname$" AND User="$user$")
                       
                        | head 100
                        | table process_name, User, ComputerName, QueryName, QueryResults&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Mar 2025 17:33:05 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/Help-with-search-query-using-multiple-tokens-and-filters/m-p/741425#M240619</guid>
      <dc:creator>ekmek4</dc:creator>
      <dc:date>2025-03-11T17:33:05Z</dc:date>
    </item>
  </channel>
</rss>

