我使用'german'创建了Postgresql全文搜索。我怎样才能确定,当我搜索“Bezirk”时,包含“Bez”的行。也是一场比赛? (反之亦然)PostgreSQL全文搜索缩写
0
A
回答
1
@pozs是正确的。您需要使用synonym dictionary。
1 - 目录$ SHAREDIR/tsearch_data创建包含以下内容的文件german.syn:
Bez Bezirk
2 - 执行查询:
CREATE TEXT SEARCH DICTIONARY german_syn (
template = synonym,
synonyms = german);
CREATE TEXT SEARCH CONFIGURATION german_syn(COPY='simple');
ALTER TEXT SEARCH CONFIGURATION german_syn
ALTER MAPPING FOR asciiword, asciihword, hword_asciipart,
word, hword, hword_part
WITH german_syn, german_stem;
现在可以测试它。执行查询:
test=# SELECT to_tsvector('german_syn', 'Bezirk') @@ to_tsquery('german_syn', 'Bezirk & Bez');
?column?
----------
t
(1 row)
test=# SELECT to_tsvector('german_syn', 'Bez Bez.') @@ to_tsquery('german_syn', 'Bezirk');
?column?
----------
t
(1 row)
其他链接:
0
尝试在搜索中使用通配符。
例如:
tableName.column LIKE 'Bez%'
的%
将为Bez
+0
关键是“Bez”。存储在数据库中,我查询“Bezirk”,所以查询是比你想象和建议的其他方式。 – JohnDoe
+0
对问题的描述非常模糊,因此很难确定您正在尝试执行的操作。对不起,我无法协助你。祝你的问题好运。 –
0
描述后的任何字母或数字搜索是非常模糊的了解你想要达到的,但它看起来像你需要简单pattern matching搜索当你寻找缩写(所以需要做像全文搜索词干)。我会pg_trgm
为了这个目的:
WITH t(word) AS (VALUES
('Bez'),
('Bezi'),
('Bezir')
)
SELECT word, similarity(word, 'Bezirk') AS similarity
FROM t
WHERE word % 'Bezirk'
ORDER BY similarity DESC;
结果:
word | similarity
-------+------------
Bezir | 0.625
Bezi | 0.5
Bez | 0.375
(3 rows)
相关问题
- 1. Postgresql拼写错误全文搜索
- 2. PostgreSQL。全文搜索性能
- 3. PostgreSql全文搜索形式
- 4. PostgreSQL的全文搜索
- 5. postgresql全文搜索查询到Django ORM
- 6. PostgreSQL全文搜索和Trigram混淆
- 7. PostgreSQL全文搜索案例研究?
- 8. PostgreSQL全文搜索问题(to_tsquery)
- 9. Rails - Postgresql - 全文搜索 - Railscasts 343
- 10. PostgreSQL全文搜索和保留字
- 11. PostgreSQL的和MySQL的全文搜索
- 12. PostgreSQL全文搜索与NHibernate.Search通过Lucene.Net
- 13. 使用PostgreSQL进行全文搜索和模糊搜索
- 14. PostgreSQL:全文搜索 - 如何搜索部分单词?
- 15. PostgreSQL全文搜索:为什么搜索速度太慢?
- 16. ElasticSearch - 使用搜索缩写
- 17. 写缩放postgresql
- 18. 全文搜索
- 19. 全文搜索
- 20. 全文搜索
- 21. 全文搜索
- 22. 全文搜索
- 23. PostgreSQL的全文搜索西班牙字符全
- 24. 在PostgreSQL上使用SQLAlchemy创建全文搜索索引
- 25. Postgresql文本搜索与PHP
- 26. PostgreSQL FTS:搜索文本[]列
- 27. Hibernate + Postgresql不区分大小写搜索
- 28. 如何防止PostgreSQL的全文搜索分析器重写符号空间?
- 29. Postgresql全文搜索几个特定字符的文字
- 30. 如何在PostgreSQL上实现中文全文搜索?
你需要创建一个自定义[同义词词典](http://www.postgresql.org/docs/current/ static/textsearch-dictionaries.html#TEXTSEARCH-SYNONYM-DICTIONARY)如果你想将它与文字搜索相匹配 – pozs
@pozs似乎是你的建议是路要走。当你把它作为答案来制定时,我会接受它。 – JohnDoe