问题标签 [searchkick]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 用 Searchkick on Rails 做一个“更像这个查询”的专业术语?
给定一个使用 searchkick 索引到 elasticsearch 中的 Widget 模型:
我已经索引了这些文件:
我正在尝试对一段新文本进行“更像这样”(MLT)查询:
我的目标是让它打到最后一个得分最高的文档,因为“lasers”比“work with”更专业,这在我的文档语料库中很常见。
我试过这个:
但它让我回到了得分最高的“与...一起工作”文档。
我也试过输入一个 key/val { stopwords: ['work', 'with'] } 但我得到 0 个结果。
有没有办法让 searchkick/elasticsearch 给我返回具有最高分数的专业术语的文档,并淡化只匹配常见术语的文档?
ruby - 使用单独的哈希构建动态查询
好的,我整个早上都在想办法解决这个问题。假设您有一个如下所示的哈希:
并且您想构建一个如下所示的查询:
到目前为止,我的方法是将传入的哈希转换为如下所示:
通过像这样遍历原始哈希:
我遇到的问题是,由于我尝试构建的查询由我将“boost_by”的未知数量的哈希组成,所以我不能只是做一些filters[0] && filters[1]
我在这里被难住的事情。有谁知道我如何将哈希动态插入到我的查询中并将运算符放在它们之间?
编辑:
查询如下所示:
上面的查询可以有任意数量的散列和运算符。因此,如果用户想将 10 个字段传递给 boost_by,我需要能够接受所有 10 个哈希以及它们之间的任何运算符,例如,我的查询可能类似于以下示例:
ruby - 构建动态 SearchKick 查询会引发语法错误
如果我运行此查询:
一切都很好,我得到了我的结果。但是如果我运行这个查询
我得到SyntaxError: unexpected ')', expecting =>
了,但我不知道为什么,或者更重要的是,如何编写这个查询。助推器部分是动态的。我得到任意数量的属性来“提升”并将它们插入到查询中。
ruby - 使用 searchkick 返回分数
我正在使用带有弹性搜索的SearchKick,并试图返回分数。例如,如果我进行了这样的搜索:
我将取回与该搜索匹配的最高分数的记录。我还想返回每条记录的分数。我知道我可以抓取 searchkick 响应并解析它,但是有没有更快的方法将分数合并到返回的记录中?
ruby-on-rails - Searchkick、typeahead.js 和 Elasticsearch 问题
我正在尝试实现一个自动完成搜索栏,用于搜索我的 Rails 4.2 应用程序中的帖子。我在前端安装了 elasticsearch、searchkick gem 和 typeahead.js 用于自动完成。
为此,我遵循了一个教程(https://shellycloud.com/blog/2013/10/adding-search-and-autocomplete-to-a-rails-app-with-elasticsearch)并设置了以下内容:
在我的routes.rb
我已经设置了这样的收集路线:
在我的Post.rb
模型中:
在我的posts_controller.rb
在我的posts.js
最后,在我看来,index.html.haml
我有:
当我在搜索框中输入内容时,我得到了这个:
我不知道发生了什么事。对于它的价值,我尝试过点击http://localhost/posts/autocomplete.json?query=something
,它的工作原理是它会返回匹配的结果。我也尝试在上面发布的 JS 中替换autocomplete
为autocomplete.json
。
不过,我在控制台中得到了同样的错误(autocomplete.json
代替autocomplete
)
你能帮我吗?
ruby - ElasticSearch / Searchkick - LIKE 查询
我将 ElasticSearch gem Searchkick 与 Rails 一起使用,我想基于 2 个值执行搜索:
一个人应该搜索所有字段的全文,另一个人应该将搜索限制为仅与一个字段部分匹配的记录。
我想要这样的东西:
但是,我需要位置过滤器不仅匹配精确值,还匹配部分值。所以不仅是“纽约”,还有“美国纽约”。就像你会在 SQL 中做的 %something% 一样。
我还需要支持分页,所以它需要在一个查询中。
我有哪些选择?
ruby-on-rails - Twitter Typeahed 0.11.1 只显示一个结果
我正在尝试使用 searchkick 在我的数据库中查找一个人。当用户从下拉列表中选择人员时,它会将人员的 id 放在隐藏字段中,这就是提交的值。
那部分工作正常(大部分)。
我遇到的问题是,如果结果少于五个,则预输入仅在下拉列表中显示一个值(searchkick 返回的第一个值)。如果有超过五个结果,则下拉菜单不会显示。
这是我的 Person 模型:
我的人员控制器:
我的表单视图:
还有我的搜索 js:
如果有人可以更好地向我解释 Bloodhound(标记器和识别功能的作用),那也会有所帮助。
我已经浏览了几个小时的文档,但没有点击。
奖励问题:假设我在数据库中有多个约翰。
- 约翰·史密斯
- 约翰·多伊
- 约翰·斯诺
当我搜索 John(这是在 0.10 上)时,下拉列表显示了所有三个,但是当我按下空格并开始输入姓氏时,searchkick 什么也没返回,所有结果都消失了。有没有办法用 Searchkick 做到这一点?
ruby-on-rails - Rails Searchkick / Elasticsearch has_many 和 belongs_to 关联
我试图使用 Searchkick 来运行基于多个模型的搜索和返回。
我的书模型包含这个
然后我的控制器有这个
我希望搜索结果搜索相关模型并在那里返回任何结果——所以是 boo 主题名称、作者和出版商。
谢谢
elasticsearch - Elasticsearch 处理内存和 CPU 负载
我正在运行 rails gem Searchkick 来访问 Elasticsearch rpm (centos6) 安装,我看到几个 Elasticsearch 进程具有不同的名称(通过 NewRelic),例如: java (elasticsearch) 256MB freeBSD (elasticsearch) 15MB 99 (elasticsearch) 9 MB linux64 (elasticsearch ) 9MB ru1 (elasticsearch) 1MB ru (elasticsearch) 0MB
所有这些过程是为了什么?这些名字是什么意思?我该如何管理它们?到底发生了什么?!
ruby-on-rails-4 - Searchkick 多模型查询
我正在尝试运行查询以查找给定位置的所有项目。我有一个Item.rb
&Location.rb
模型在哪里searchkick
。在我的items
控制器中,我有以下逻辑:
(:item_name
用于捕获参数)
Ant以下是日志:
我尝试重新索引位置和项目,重新启动服务器,但无济于事。
一个如何构建搜索两个/n 个模型?