Jquery 使用postgresql建议的Rails自定义搜索

Jquery 使用postgresql建议的Rails自定义搜索,jquery,ruby-on-rails,postgresql,search,Jquery,Ruby On Rails,Postgresql,Search,我希望得到一些关于以下搜索条件的最佳方向的建议,我需要在我的激情项目应用程序中实现这些搜索条件: 搜索字段将包含一个字符串,在这种情况下,它将是一个问题 例如,在我的数据库中,我将有100个标题为:string-answer:text和标记为:string的预写答案 搜索将比较问题中的至少三个关键字和三个答案标签 搜索结果将显示在answersindex页面上,并且只显示一个答案 最好在jQuery中构建一些东西,将:标记字符串转换为标记数组?这样我就可以和索引进行比较 我尝试使用Elastic

我希望得到一些关于以下搜索条件的最佳方向的建议,我需要在我的激情项目应用程序中实现这些搜索条件:

搜索字段将包含一个字符串,在这种情况下,它将是一个问题 例如,在我的数据库中,我将有100个标题为:string-answer:text和标记为:string的预写答案 搜索将比较问题中的至少三个关键字和三个答案标签 搜索结果将显示在answersindex页面上,并且只显示一个答案 最好在jQuery中构建一些东西,将:标记字符串转换为标记数组?这样我就可以和索引进行比较

我尝试使用ElasticSearch,花了大约5个小时试图安装它,但没有成功


谢谢

如果主要的搜索匹配标准是show-answer,它有三个或更多的搜索词作为标记,那么这将有点棘手,很难用Postgres干净地实现

您可以选择几条路线,这两条路线的执行速度都不如Elasticsearch查询快:

AnswerTags表上的SQL子查询:

比如:

选择答案id

从应答标签

标签文本在哪里

按计数*>=3的答案id分组

按计数订购*desc

使用Postgres特定的数组类型将所有标记保留在应答字段中。编写存储过程以计算标记交点/重叠:

这方面的一些建议方法:

如果您将Elasticsearch作为一个解决方案,您将获得更好的性能,尽管如果您只有100条记录,这可能并不重要,而且实现路径更简单。看

Elasticsearch还可以在匹配逻辑和搜索功能中实现更多细微差别,例如多条记录匹配的分组情况、自动提示答案标题或标记、同义词/词干和其他文本规范化方法


Elastic最近收购了一家伟大的Elasticsearch托管公司,如果您想绕过安装/配置任务立即启动并运行,这是一个不错的选择。他们提供14天的免费试用期,由Elastic所有,升级速度比任何其他ES主机都快,每个群集实例都包含高级插件。

谢谢您的建议!我将继续尝试安装Elasticsearch