1
我想在給定字符串的數據庫列中找到最接近的匹配字符串。搜索後,我來到了下面的表格和查詢與Oracle文本搜索最接近的匹配,包括短字符串
CREATE TABLE docs (id NUMBER PRIMARY KEY, text VARCHAR2(200));
INSERT INTO docs VALUES(1, 'California is a state in the US.');
INSERT INTO docs VALUES(2, 'Paris is a city in France.');
INSERT INTO docs VALUES(3, 'France is in Europe.');
INSERT INTO docs VALUES(4, 'Paris');
CREATE INDEX idx_docs ON docs(text)
INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS
('DATASTORE CTXSYS.DEFAULT_DATASTORE');
SELECT SCORE(1), id, text
FROM docs
WHERE CONTAINS(text, 'fuzzy(Parsi,1,1)', 1) > 0;
我已經設置了相似性得分最低,即1.它適用於像「帕西」或「解析」搜索字符串用。它給了我想要的結果。但是,如果搜索字符串像「par」或「pa」那樣太小,它不會顯示任何結果。
即使使用非常短的字符串進行搜索,我該如何才能獲得最接近的匹配?
表中的數據不是較短的字符串。它的搜索字符串很短 – AbrahamDaniel
@BruceWayne重要的是索引中的內容。在你的情況下,它不包含更短的前綴。 – Tomasz