<?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: Function to flag phonetically similar words like Jellyfisher for text in All Apps and Add-ons</title>
    <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757496#M82675</link>
    <description>&lt;P&gt;With the prototype in hand, any analyzer, codec, etc. could step in for metaphone. I've ironically just come off working with a competing product that makes searches like this trivial, but its out of the box limitations are similar to Jellyfish.&lt;/P&gt;</description>
    <pubDate>Tue, 20 Jan 2026 13:15:41 GMT</pubDate>
    <dc:creator>tscroggins</dc:creator>
    <dc:date>2026-01-20T13:15:41Z</dc:date>
    <item>
      <title>Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757397#M82658</link>
      <description>&lt;P&gt;Hey, we've been playing with the jellyfisher tool to perform some fuzzy matching of similar user names / email addresses in audit logs.&amp;nbsp; It's good at names with close matches but characters changed, where it falls down are names which sound similar phonetically but not written.&amp;nbsp; Are there any functions or TAs that add this capability?&amp;nbsp; Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jan 2026 20:04:47 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757397#M82658</guid>
      <dc:creator>BradOH</dc:creator>
      <dc:date>2026-01-16T20:04:47Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757400#M82659</link>
      <description>&lt;P&gt;If you mean something that would give you a possibility to do something like&lt;/P&gt;&lt;PRE&gt;index=auditlogs username~="johndoe"&lt;/PRE&gt;&lt;P&gt;there's no way something like that would work efficiently. Yes, you could probably try to use some external command or something like that to that effect but it would be nowhere near Splunk's native search performance.&lt;/P&gt;</description>
      <pubDate>Fri, 16 Jan 2026 23:05:40 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757400#M82659</guid>
      <dc:creator>PickleRick</dc:creator>
      <dc:date>2026-01-16T23:05:40Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757418#M82662</link>
      <description>&lt;P&gt;In theory JellyFisher does phonetic analysis, according to the docs&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;Phonetic encoding algortihms:
- American Soundex
- Metaphone
- NYSIIS (New York State Identification and Intelligence System)
- Match Rating Codex&lt;/LI-CODE&gt;&lt;P&gt;but I've not used it - I've used fuzzy matching before, but never phonetic. Do these not give you good results?&lt;/P&gt;&lt;P&gt;I note that the JellyFisher app is 2021, so the version of JellyFish library is a little old, but seemingly not so different.&lt;/P&gt;&lt;P&gt;If you have python skills you may be able to post fit a&amp;nbsp;Beider-Morse implementation into a custom command that may yield better results.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 19 Jan 2026 05:44:29 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757418#M82662</guid>
      <dc:creator>bowesmana</dc:creator>
      <dc:date>2026-01-19T05:44:29Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757472#M82670</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/311509"&gt;@BradOH&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;Are you using &lt;A href="https://splunkbase.splunk.com/app/3626" target="_self"&gt;JellyFisher&lt;/A&gt; from Splunkbase? We can use JellyFisher to build a prototype natural language data model based on various codecs, e.g., metaphone.&lt;/P&gt;&lt;P&gt;Newer versions of the Jellyfish module or codecs with expanded language coverage, e.g.,&amp;nbsp;&lt;SPAN&gt;Beider-Morse as referenced by&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/6367"&gt;@bowesmana&lt;/a&gt;,&lt;/SPAN&gt;&amp;nbsp;can replace the external lookup described below. We could also blend in matching by similarity, e.g.,&amp;nbsp;&lt;SPAN&gt;Levenshtein distance, and stem.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Start by downloading and installing JellyFisher.&lt;/P&gt;&lt;P&gt;Verify JellyFisher with a simple search. I'm using variations on my given name:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| makeresults format=csv data="
src_user,src_user_domain
travis@example.com,example.com
trefor,
trev,
trever@example.com,example.com
trevon@example.com,example.com
tr3v0r,
trev0r,
trevor,
"
| rex field=src_user "(?&amp;lt;src_user_local_part&amp;gt;[^@]+)"
| jellyfisher metaphone(src_user_local_part)

src_user	src_user_domain	src_user_local_part	metaphone
travis@example.com	example.com	travis	TRFS
trefor	 	trefor	TRFR
trev	 	trev	TRF
trever@example.com	example.com	trever	TRFR
trevon@example.com	example.com	trevon	TRFN
tr3v0r	 	tr3v0r	TRFR
trev0r	 	trev0r	TRFR
trevor	 	trevor	TRFR&lt;/LI-CODE&gt;&lt;P&gt;trefor, trever, tr3v0r, trev0r, and trevor are encoded as TRFR. I'll use this example throughout.&lt;/P&gt;&lt;P&gt;Let's create an external lookup script to allow Splunk to automatically add JellyFisher output to events at search time.&lt;/P&gt;&lt;P&gt;In $SPLUNK_HOME/etc/apps/jellyfisher/bin, create jellyfisher_lookup.py:&lt;/P&gt;&lt;LI-CODE lang="python"&gt;#!/usr/bin/env python

import csv
import os
import sys

splunkhome = os.environ["SPLUNK_HOME"]
sys.path.append(os.path.join(splunkhome, "etc", "apps", "jellyfisher", "lib"))
import jellyfish

def main():
    if len(sys.argv) != 2:
        print("Usage: python jellyfisher_lookup_metaphone.py field", file=sys.stderr)
        sys.exit(1)

    field = sys.argv[1]

    infile = sys.stdin
    outfile = sys.stdout

    r = csv.DictReader(infile)

    w = csv.DictWriter(outfile, fieldnames=r.fieldnames + ['metaphone'])
    w.writeheader()

    for result in r:
        if result[field]:
            value = result[field]
            result['metaphone'] = jellyfish.metaphone(value).strip()
            w.writerow(result)

main()&lt;/LI-CODE&gt;&lt;P&gt;We can test the script locally using the Splunk CLI:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;$ echo -e 'foo\ntrevor' | /opt/splunk/bin/splunk cmd python jellyfisher_lookup_metaphone.py foo
foo,metaphone
trevor,TRFR&lt;/LI-CODE&gt;&lt;P&gt;Edit $SPLUNK_HOME/etc/apps/jellyfisher/local/transforms.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[jellyfisher_metaphone]
external_cmd = jellyfisher_lookup_metaphone.py field
fields_list = field, metaphone
python.version = python3&lt;/LI-CODE&gt;&lt;P&gt;Restart Splunk.&lt;/P&gt;&lt;P&gt;Verify the jellyfisher_metaphone lookup:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| makeresults format=csv data="
src_user,src_user_domain
travis@example.com,example.com
trefor,
trev,
trever@example.com,example.com
trevon@example.com,example.com
tr3v0r,
trev0r,
trevor,
"
| rex field=src_user "(?&amp;lt;src_user_local_part&amp;gt;[^@]+)"
| lookup jellyfisher_metaphone field as src_user_local_part output metaphone as src_user_phonetic

src_user	src_user_domain	src_user_local_part	src_user_phonetic
travis@example.com	example.com	travis	TRFS
trefor	 	trefor	TRFR
trev	 	trev	TRF
trever@example.com	example.com	trever	TRFR
trevon@example.com	example.com	trevon	TRFN
tr3v0r	 	tr3v0r	TRFR
trev0r	 	trev0r	TRFR
trevor	 	trevor	TRFR&lt;/LI-CODE&gt;&lt;P&gt;To glue your mail server's add-on to the lookup, create a field extraction, field alias, or calculated field to extract a new field named src_user_local_part from your source events.&lt;/P&gt;&lt;P&gt;For example, use SplunkWeb to add a calculated field to Splunk Add-on for Microsoft Office 365 (splunk_ta_o365):&lt;/P&gt;&lt;P&gt;Destination app: splunk_ta_o365&lt;BR /&gt;Apply to: sourcetype named o365:reporting:messagetrace&lt;BR /&gt;Name: src_user_local_part&lt;BR /&gt;Eval expression: mvindex(split(src_user, "@"), 0)&lt;/P&gt;&lt;P&gt;Edit permissions and export the object globally:&lt;/P&gt;&lt;P&gt;Object should appear in: All apps (system)&lt;/P&gt;&lt;P&gt;Set permissions by roles per your security schema. The default is typically read for everyone and write for admin and power.&lt;/P&gt;&lt;P&gt;Alternatively, edit $SPLUNK_HOME/etc/apps/splunk_ta_o365/local/props.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[o365:reporting:messagetrace]
EVAL-src_user_local_part = mvindex(split(src_user, "@"), 0)&lt;/LI-CODE&gt;&lt;P&gt;and $SPLUNK_HOME/etc/apps/splunk_ta_o365/metadata/local.meta:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[props/o365%3Areporting%3Amessagetrace/EVAL-src_user_local_part]
access = read : [ * ], write : [ admin, power ]
export = system&lt;/LI-CODE&gt;&lt;P&gt;Create a new automatic lookup:&lt;/P&gt;&lt;P&gt;Destination app: splunk_ta_o365&lt;BR /&gt;Name: jellyfisher_metaphone&lt;BR /&gt;Lookup table: jellyfisher_metaphone&lt;BR /&gt;Apply to: sourcetype named o365:reporting:messagetrace&lt;BR /&gt;Lookup input fields: field = src_user_local_part&lt;BR /&gt;Lookup output fields: metaphone = src_user_phonetic&lt;/P&gt;&lt;P&gt;Edit permissions and export the object globally.&lt;/P&gt;&lt;P&gt;Alternatively, edit $SPLUNK_HOME/etc/apps/splunk_ta_o365/local/props.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[o365:reporting:messagetrace]
LOOKUP-jellyfisher_metaphone = jellyfisher_metaphone field AS src_user_local_part OUTPUTNEW metaphone AS src_user_phonetic&lt;/LI-CODE&gt;&lt;P&gt;and $SPLUNK_HOME/etc/apps/splunk_ta_o365/metadata/local.meta:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[props/o365%3Areporting%3Amessagetrace/LOOKUP-jellyfisher_metaphone]
access = read : [ * ], write : [ admin, power ]
export = system&lt;/LI-CODE&gt;&lt;P&gt;Create an event type and tag to identify events with src_user_local_part:&lt;/P&gt;&lt;P&gt;Destination App: splunk_ta_o365&lt;BR /&gt;Name: phonetic&lt;BR /&gt;Search string: src_user_local_part_phonetic=*&lt;BR /&gt;Tag(s): email,phonetic&lt;BR /&gt;Color: none (or a color of your choice)&lt;BR /&gt;Priority: 1 (Highest)&lt;/P&gt;&lt;P&gt;Edit permissions and export the objects globally.&lt;/P&gt;&lt;P&gt;Alternatively, edit $SPLUNK_HOME/etc/apps/splunk_ta_o365/local/eventypes.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[o365_reporting_messagetrace_phonetic]
search = sourcetype=o365:reporting:messagetrace src_user_phonetic=*&lt;/LI-CODE&gt;&lt;P&gt;and $SPLUNK_HOME/etc/apps/splunk_ta_o365/local/tags.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[eventtype=o365_reporting_messagetrace_phonetic]
email = enabled
phonetic = enabled&lt;/LI-CODE&gt;&lt;P&gt;and $SPLUNK_HOME/etc/apps/splunk_ta_o365/metadata/local.meta:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[tags/eventtype%3Do365_reporting_messagetrace_phonetic]
access = read : [ * ], write : [ admin, power ]
export = system&lt;/LI-CODE&gt;&lt;P&gt;To make the src_user_phonetic field searchable, edit $SPLUNK_HOME/etc/apps/splunk_ta_o365/local/fields.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[src_user_phonetic]
INDEXED = false
INDEXED_VALUE = false&lt;/LI-CODE&gt;&lt;P&gt;Restart Splunk.&lt;/P&gt;&lt;P&gt;Verify the configuration:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;index=main sourcetype=o365:reporting:messagetrace src_user_phonetic=TRFR
| table src_user src_user_local_part src_user_phonetic tag

src_user	src_user_local_part	src_user_phonetic	tag
trefer@example.com	trefer	TRFR	email phonetic
trevor@example.com	trevor	TRFR	email phonetic
trever@example.com	trever	TRFR	email phonetic&lt;/LI-CODE&gt;&lt;P&gt;To create a summary index of the src_user_phonetic field, we can create or edit a data model.&lt;/P&gt;&lt;P&gt;Let's clone and edit the Splunk CIM Email data model for this example. In production, I recommend a custom data model.&lt;/P&gt;&lt;P&gt;Data Model: Email&lt;BR /&gt;New Title: Email Phonetic&lt;BR /&gt;New ID: Email_Phonetic&lt;BR /&gt;App: Search &amp;amp; Reporting (do not clone to Splunk Common Information Model)&lt;BR /&gt;New Description: Email Phonetic Data Model&lt;BR /&gt;Permissions: Clone&lt;/P&gt;&lt;P&gt;Note that cloning the data model also clones the tags_whitelist setting, which does not include our new phonetic tag. To resolve this issue, edit $SPLUNK_HOME/etc/apps/search/local/datamodels.conf:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;[Email_Phonetic]
tags_whitelist = cloud,content,delivery,filter,pci,phonetic&lt;/LI-CODE&gt;&lt;P&gt;SplunkWeb does not allow us to add extracted fields to child datasets. For simplicity here, we'll add the src_user_phonetic field to the root dataset.&lt;/P&gt;&lt;P&gt;With the All Email dataset selected, click Add Field &amp;gt; Auto-Extracted.&lt;/P&gt;&lt;P&gt;Select the src_user_phonetic field with type String and flag Optional, and then click Save. If the field is not visible, increase the sample size or verify field extractions, lookups, etc. are implemented correctly.&lt;/P&gt;&lt;P&gt;With the All Email dataset selected, click Add Dataset &amp;gt; Child.&lt;/P&gt;&lt;P&gt;Dataset Name: Email Phonetic&lt;BR /&gt;Dataset ID: Phonetic&lt;BR /&gt;Inherit From: All Email&lt;BR /&gt;Additional Constraints: tag=phonetic&lt;/P&gt;&lt;P&gt;Verify the data model:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| datamodel Email_Phonetic Phonetic flat
| search src_user_phonetic=TRFR
| table src_user src_user_phonetic

src_user	src_user_phonetic
trefer@example.com	TRFR
trevor@example.com	TRFR
trever@example.com	TRFR&lt;/LI-CODE&gt;&lt;P&gt;Ensure the cim_Email_indexes macro references the correct indexes, accelerate the data model, wait for the summaries to build, and then verify the data model again:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| datamodel Email_Phonetic Phonetic flat summariesonly=true
| search src_user_phonetic=TRFR
| table src_user src_user_phonetic

src_user	src_user_phonetic
trefer@example.com	TRFR
trevor@example.com	TRFR
trever@example.com	TRFR&lt;/LI-CODE&gt;&lt;P&gt;Finally, tie it together with a subsearch to dynamically generate the phonetic encoding:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| datamodel Email_Phonetic Phonetic flat summariesonly=true
| search 
    [| makeresults 
    | eval user="trevor" 
    | lookup jellyfisher_metaphone field as user output metaphone as src_user_phonetic 
    | table src_user_phonetic ] 
| table src_user src_user_phonetic

src_user	src_user_phonetic
trefer@example.com	TRFR
trevor@example.com	TRFR
trever@example.com	TRFR&lt;/LI-CODE&gt;&lt;P&gt;We can turn this into a macro for quick access:&lt;/P&gt;&lt;P&gt;Destination app: search&lt;BR /&gt;Name: email_by_src_user_phonetic(1)&lt;BR /&gt;Definition: datamodel Email_Phonetic Phonetic flat summariesonly=true | search [| makeresults | eval user="$src_user$" | lookup jellyfisher_metaphone field as user output metaphone as src_user_phonetic | table src_user_phonetic ] | table src_user src_user_phonetic&lt;BR /&gt;Arguments: src_user&lt;/P&gt;&lt;P&gt;Edit permissions and export the macro globally.&lt;/P&gt;&lt;P&gt;Verify the macro:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| `email_by_src_user_phonetic(trevor)`

src_user	src_user_phonetic
trefer@example.com	TRFR
trevor@example.com	TRFR
trever@example.com	TRFR&lt;/LI-CODE&gt;&lt;P&gt;If the datamodel command is slow in your environment, use the tstats command:&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;| tstats summariesonly=true count from datamodel=Email_Phonetic.All_Email where nodename=All_Email.Phonetic 
    [| makeresults 
    | eval user="trevor" 
    | lookup jellyfisher_metaphone field as user output metaphone as All_Email.src_user_phonetic 
    | table All_Email.src_user_phonetic ] by _time span=1s All_Email.src_user All_Email.src_user_phonetic

_time	All_Email.src_user	All_Email.src_user_phonetic	count
2026-01-19 12:25:30	trever@example.com	TRFR	1
2026-01-19 12:25:36	trefer@example.com	TRFR	1
2026-01-19 12:25:36	trevor@example.com	TRFR	1&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 04:56:30 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757472#M82670</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2026-01-20T04:56:30Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757474#M82671</link>
      <description>&lt;P&gt;I didn't call it out above, but encodings that accommodate Unicode look-alike characters would be a nice complement to phonetic encodings, particularly in threat hunting and detection engineering.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 05:06:25 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757474#M82671</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2026-01-20T05:06:25Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757475#M82672</link>
      <description>&lt;P&gt;I understood from the OP they were already playing with JellyFisher and that the phonetic matches were just not good enough.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 05:29:55 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757475#M82672</guid>
      <dc:creator>bowesmana</dc:creator>
      <dc:date>2026-01-20T05:29:55Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757486#M82673</link>
      <description>&lt;P&gt;Great writeup.&lt;/P&gt;&lt;P&gt;But it's worth pointing out that - like any other external lookup - it works on already searched data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 09:15:20 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757486#M82673</guid>
      <dc:creator>PickleRick</dc:creator>
      <dc:date>2026-01-20T09:15:20Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757495#M82674</link>
      <description>&lt;P&gt;The accelerated data model gives you a rough implementation of a fuzzy match operator.&lt;/P&gt;&lt;P&gt;Using the add-on's streaming command does give you search-time access to comparisons, but the command as published doesn't work as an alternative to Splunk's term analyzer.&lt;/P&gt;&lt;P&gt;It's also a rare case where a fields.conf stanza is necessary.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 13:07:22 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757495#M82674</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2026-01-20T13:07:22Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757496#M82675</link>
      <description>&lt;P&gt;With the prototype in hand, any analyzer, codec, etc. could step in for metaphone. I've ironically just come off working with a competing product that makes searches like this trivial, but its out of the box limitations are similar to Jellyfish.&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 13:15:41 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757496#M82675</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2026-01-20T13:15:41Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757500#M82676</link>
      <description>&lt;P&gt;Wow, thanks for the detailed response, I'll have to review and experiment with this. I'll respond back how it works out and what we implement.&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 20 Jan 2026 15:20:05 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757500#M82676</guid>
      <dc:creator>BradOH</dc:creator>
      <dc:date>2026-01-20T15:20:05Z</dc:date>
    </item>
    <item>
      <title>Re: Function to flag phonetically similar words like Jellyfisher for text</title>
      <link>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757644#M82687</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.splunk.com/t5/user/viewprofilepage/user-id/311509"&gt;@BradOH&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;You may find this app useful as a starting point for exploring other algorithms:&amp;nbsp;&lt;A href="https://github.com/groktrev/abydos" target="_blank" rel="noopener"&gt;https://github.com/groktrev/abydos&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Abydos is GPLv3, so the app is necessarily GPLv3 as well.&lt;/P&gt;&lt;P&gt;To install the app, download and extract the repo to $SPLUNK_HOME/etc/apps/abydos/ or run the following command from the $SPLUNK_HOME/etc/apps/ directory:&lt;/P&gt;&lt;P&gt;git clone &lt;A href="https://github.com/groktrev/abydos.git" target="_blank" rel="noopener"&gt;https://github.com/groktrev/abydos.git&lt;/A&gt;&lt;/P&gt;&lt;P&gt;After that, restart Splunk.&lt;/P&gt;&lt;P&gt;I haven't packaged the app for Splunkbase.&lt;/P&gt;&lt;P&gt;From the README I just drafted:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Introduction&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Community App for Abydos is a Splunk wrapper for the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://github.com/chrislit/abydos" target="_blank" rel="noopener"&gt;Abydos&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;library.&lt;/P&gt;&lt;P&gt;The&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;abydos&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;streaming search command provides access to the abydos.distance,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;abydos.fingerprint,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;abydos.phonetic,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;abydos.stemmer, and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;abydos.tokenizer&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;modules using default class parameters and the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;dist_abs(),&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;fingerprint(),&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;enocde_alpha()&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;or&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;encode(),&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;stem(), and&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tokenize()&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;functions, respectively.&lt;/P&gt;&lt;P&gt;See the Abydos&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://abydos.readthedocs.io/" target="_blank" rel="nofollow noopener"&gt;documentation&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;for available algorithms. Algorithms requiring SyllabiPy, NLTK, PyLZSS, or paq are not implemented.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Requirements&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Community App for Abydos requires a non-EOL version of Splunk Enterprise and Python for Scientific Computing:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://splunkbase.splunk.com/app/2882" target="_blank" rel="nofollow noopener"&gt;Python for Scientific Computing (for Linux 64-bit)&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://splunkbase.splunk.com/app/6785" target="_blank" rel="nofollow noopener"&gt;Python for Scientific Computing (for Mac Apple Silicon)&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://splunkbase.splunk.com/app/2881" target="_blank" rel="nofollow noopener"&gt;Python for Scientific Computing (for Mac Intel)&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://splunkbase.splunk.com/app/2883" target="_blank" rel="nofollow noopener"&gt;Python for Scientific Computing (for Windows 64-bit)&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;Examples&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;Return the Levenshtein distance between two field values:&lt;/P&gt;&lt;P&gt;| abydos module=distance algorithm=Levenshtein field1 field2&lt;/P&gt;&lt;P&gt;Return the skeleton key string fingerprint of a single field value:&lt;/P&gt;&lt;P&gt;| abydos module=fingerprint algorithm=SkeletonKey field1&lt;/P&gt;&lt;P&gt;Return the Beider-Morse encodings of a single field value:&lt;/P&gt;&lt;P&gt;| abydos module=phonetic algorithm=BeiderMorse field1&lt;/P&gt;&lt;P&gt;Return the English stem of a single field value:&lt;/P&gt;&lt;P&gt;| abydos module=stemmer algorithm=Porter field1&lt;/P&gt;&lt;P&gt;Return the q-grams of a single field value:&lt;/P&gt;&lt;P&gt;| abydos module=tokenizer algorithm=QGrams field1&lt;/P&gt;</description>
      <pubDate>Sat, 24 Jan 2026 19:15:34 GMT</pubDate>
      <guid>https://community.splunk.com/t5/All-Apps-and-Add-ons/Function-to-flag-phonetically-similar-words-like-Jellyfisher-for/m-p/757644#M82687</guid>
      <dc:creator>tscroggins</dc:creator>
      <dc:date>2026-01-24T19:15:34Z</dc:date>
    </item>
  </channel>
</rss>

