hasura graphql 查询中的特殊字符
Special characters in hasura graphql queries
我一直在使用hasura和next.js在前端(SSR)渲染html。我有姿势数据库,并通过 useQuery 挂钩使用 grapql 查询来获取数据。
我的简单查询将是这样的
query News_60($str) {
news: news_aggregate(where: where: { text:{_ilike:$str}) {
aggregate {
count
}
}
}
上面一个给了我新闻匹配str的计数。 str 的示例将是“%game%”(用户在搜索框中键入“game”)。它工作得很好。它给出了将“游戏”作为文本字段的一部分的新闻。如果我传递“%game%of%”(用户在搜索框中键入“game of”)。我得到的结果中包含“游戏”和“的”。例子:权力的游戏。这对我来说完全没问题。现在,问题是当用户在搜索框中键入“游戏类型”时。我希望 hasura 选择带有“game#type”或“game_type”或“game type”文本的结果。因此,它应该选择所有包含“game”和“type”单词的结果,中间带有任何特殊字符或 space。我试过“%game%type%”。但是它会选择包含中间任何字母的文本,但是,我只想要中间的特殊字符。
有办法吗。
请帮帮我。
hasura 中有特殊字符处理吗?
您可以使用 _similar 运算符和 SQL 标准的正则表达式来实现。
{
"str": "%game( |#|\_)type%"
}
这匹配任何 space 或 # 或 _ 字符两个字之间!
一个警告可能是区分大小写。克服这个问题的一种方法是将您的列更改为 citext 类型
我一直在使用hasura和next.js在前端(SSR)渲染html。我有姿势数据库,并通过 useQuery 挂钩使用 grapql 查询来获取数据。 我的简单查询将是这样的
query News_60($str) {
news: news_aggregate(where: where: { text:{_ilike:$str}) {
aggregate {
count
}
}
}
上面一个给了我新闻匹配str的计数。 str 的示例将是“%game%”(用户在搜索框中键入“game”)。它工作得很好。它给出了将“游戏”作为文本字段的一部分的新闻。如果我传递“%game%of%”(用户在搜索框中键入“game of”)。我得到的结果中包含“游戏”和“的”。例子:权力的游戏。这对我来说完全没问题。现在,问题是当用户在搜索框中键入“游戏类型”时。我希望 hasura 选择带有“game#type”或“game_type”或“game type”文本的结果。因此,它应该选择所有包含“game”和“type”单词的结果,中间带有任何特殊字符或 space。我试过“%game%type%”。但是它会选择包含中间任何字母的文本,但是,我只想要中间的特殊字符。
有办法吗。
请帮帮我。
hasura 中有特殊字符处理吗?
您可以使用 _similar 运算符和 SQL 标准的正则表达式来实现。
{
"str": "%game( |#|\_)type%"
}
这匹配任何 space 或 # 或 _ 字符两个字之间!
一个警告可能是区分大小写。克服这个问题的一种方法是将您的列更改为 citext 类型