我的问题是PL/pgSQL解析器将 '#' 或 '+' 之类的符号视为空格符号(这没关系),因此像 'C++' 或 'C#' 或 'PL/SQL' 这样的查询被解析如下:
asciiword | Word, all ASCII | C | {english_stem} | english_stem | {c}
blank | Space symbols | # | {thesaurus_en,simple} | simple | {#}
我正在尝试找到处理此类查询的最佳方法。我一直在尝试通过使用同义词词典来实现这一点,但它看起来并不可行。
我在想的是在写入数据库时将“C#”重写为“CSHARP”的东西(因为我猜“C#”将被索引为“C”)以及在搜索时会做同样的事情。
我可以在我的 Web 应用程序端做到这一点,但它似乎并不正确。
我将如何处理这个问题,或者我可以将哪些 PL/pgSQL 触发器用于我正在考虑的方法?