I want to use soundex with sqlite.The goal is for homophones to be encoded to the same representation so that they can be matched despite minor differences in spelling.
I am using below code-
class SearchDBManager private constructor(context: Context) : BaseSQLiteOpenHelper(context, SQLITE_FILE_NAME, null, DATABASE_VERSION) {
override fun onCreate(db: SQLiteDatabase?) {
db?.execSQL(CREATE_SEARCH_TABLE)
}
override fun onUpgrade(db: SQLiteDatabase?, p1: Int, p2: Int) {
}
fun insertSearchList(station: HashMap<String, String>) {
var db: SQLiteDatabase? = null
try {
db = writableDatabase
} catch (e: IllegalStateException) {
CrashLogger.logException(e)
} catch (e: SQLException) {
CrashLogger.logException(e)
}
if (db == null) {
return
}
try {
for ((key, value) in station) {
val values = ContentValues()
values.put(COLUMN_CODE, key)
values.put(COLUMN_NAME, value)
values.put(COLUMN_SOUNDEX, "soundex("+value+")")
LogcatLogger.d(TAG, key + " " + value + " " + System.currentTimeMillis())
insert(TABLE_SEARCH, null, values)
}
} catch (e: SQLException) {
CrashLogger.logException(e)
}
}
companion object {
val DATABASE_VERSION = 1
val SQLITE_FILE_NAME = "Search.sqlite"
private val TAG = "SearchDBManager"
private val TABLE_SEARCH = "Search"
private val COLUMN_CODE = "Code"
private val COLUMN_NAME = "Name"
private val COLUMN_SOUNDEX = "SSoundex"
private var sInstance: SearchDBManager? = null
private val COMMA_SEP = ","
private val CREATE_SEARCH_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_SEARCH + " (" +
COLUMN_CODE + " TEXT NOT NULL UNIQUE " + COMMA_SEP +
COLUMN_NAME + " TEXT " + COMMA_SEP +
COLUMN_SOUNDEX + " TEXT " + ")"
val instance: SearchDBManager?
@Synchronized get() {
if (sInstance == null) {
sInstance = SearchDBManager(XYApplication.getInstance())
}
return sInstance
}
}
}
Above code inserts value in table as soundex(<value>)
while i want it to encode the value.I researched on net and found-
How to use Soundex with SQLITE in android
but I don't understand how to use SQLITE_SOUNDEX compile-time option.
How can i enable soundex in sqlite?