嗨,在将搜索功能应用到我的服务中之前,我正在做一些研究。我目前使用 PostgreSQL 作为我的主要存储。我绝对可以使用 PostgreSQL 的内置全文搜索,但问题是我的数据分散在几个表中。
我的服务是一个电子商务网站。因此,如果客户搜索“好苹果笔记本电脑”,我需要连接Brand
表、post
表和review
表(1 个帖子是多个评论 + 简短摘要的组合)以完全搜索所有帖子。如果我使用 elasticsearch,我可以通过预处理插入完整的帖子。
根据我的研究,有人说 PostgreSQL 的 FTS 和 elasticsearch 性能相似,有人说 elasticsearch 更快。对于我的情况,哪个是更好的解决方案?
提前致谢
我有属于主要类别的主要类别和次要类别。两者都是 ENUM 类型。我希望客户选择匹配的次要类别 ENUM 与其主要类别一起提交。我不想将所有不同的次要类别 ENUM 作为字段包含在内。
我第一次尝试做
union MinorCategories = Minor1 | Minor2
但是这失败了,因为union
只适用于ObjectTypes
没有必要根据主要类别强制执行次要类别。我只想通过 ENUM 接收一个可由客户端选择的字段。有什么解决办法吗?
我正在尝试使用 GraphQL 记录我的 API。对于可读性问题,我想在多行中留下评论,但它似乎不适用于常规的 '\n' 换行符
"""
Return:\n true : DB save successful\n false : DB save unsuccessful
"""
Run Code Online (Sandbox Code Playgroud)
这是我试过的
但是它输出完全相同,而不在新行中放置行
Return:\n true : DB save successful\n false : DB save unsuccessful
Run Code Online (Sandbox Code Playgroud)
是否可以在新行中排列文本,例如:
Return:
true : DB save successful
false : DB save unsuccessful
Run Code Online (Sandbox Code Playgroud) 我目前正在使用 PostgreSQL 和 Nodejs。到目前为止,我已经使用原始 SQL 和pg
驱动程序进行了开发。我预计我的服务在不久的将来会有相当多的记录。(10k+)
我对 SQL 与 ORM 做了一些研究,因为这不是一个新问题。据我了解,
SQL具有更好的性能,ORM增强了代码可读性,减少了代码长度,比SQL更容易学习。
这项研究http://www.diva-portal.org/smash/get/diva2:1014983/FULLTEXT02显示,当行数增加时,原始 SQL 和 ORM 之间的性能差异相当大。因为研究已经进行过Laravel ORM
,我知道结果可能会有所不同nodejs ORM sequelize
。
我的代码很长,因为我的函数中有 SQL 字符串。如果我已经知道如何编写 SQL,我应该转向 ORM 吗?
补充:如果我要实现 ORM,因为我有一些复杂的查询连接和聚合多个表,如果我使用 ORM 进行简单查询SELECT
并INSERT
使用原始 SQL 进行复杂查询,这会是一个糟糕的选择吗?