gpt4 book ai didi

sql - PostgreSQL tsvector 配置 : how to allow special characters?

转载 作者:行者123 更新时间:2023-11-29 11:14:14 25 4
gpt4 key购买 nike

我在 PostgreSQL 中设置了一个新的文本搜索配置。此配置使用空停用词文件、DictFile 和 AffFile。

一个简单的测试...

SELECT * 
FROM ts_debug('public.myconfig', 'C++ and C# and PHP');

...工作(几乎)很好,除了“C++”和“C#”的词位都是“C”这一事实。基本上,我想做的就是确保“C++”的词素是“C++”,“C#”的词素是“C#”,从而使用户能够查询“C++”。

最佳答案

问题是双重的。

  1. 第一个问题是索引。默认配置使用词干提取来索引数据,因此您可以获得“C++”和“C#”的词素“C”。您可以使用“简单”配置来索引数据,但最终会在索引中出现不需要的词。我所做的是将“C++”转换为“Cplusplus”并对其进行索引。由于 'Cplusplus' 没有词素,它将按原样索引。您可以通过在索引数据中将其设置为“CSharp”来对“C#”执行相同的操作。

  2. 第二个问题是搜索。既然索引数据没问题,我们需要确保转换特殊词的搜索词。如果用户键入“C++”,您需要在执行搜索之前将其转换为“Cplusplus”。

我在数据库上创建了一个函数,它接受一个字符串并转换所有出现的特殊术语。

我有一段时间没有使用 TSearch,所以我不确定 TSearch 是否允许您像允许停用词一样设置和异常(exception)列表。

关于sql - PostgreSQL tsvector 配置 : how to allow special characters?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169734/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com