问题标签 [tire]

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.

0 投票
0 回答
429 浏览

ruby-on-rails - Tire Gem Ruby on Rails 多面搜索问题

我正在尝试复制我使用轮胎宝石的工作卷曲请求。但是,当使用该库时,它似乎不允许我在一个方面设置多个字段。我想设置术语和过滤器字段,但是它们只是相互覆盖。这是我试图复制的 curl 请求的工作方面部分: "facets": { "person_value_f": { "terms": { "field":"person_value_f", "size":10 }, "nested" :“档案”,“facet_filter”:{“term”:{“person_value_f”:“NO”}}}}

这是我尝试复制的代码: facet "person_value_f", :nested => "dossiers" do filter(person_value_f,"NO") terms "person_value_f" end

作为术语是最后一行代码,它是 curl 命令中唯一包含的部分。看一下轮胎库,它似乎并没有让你这样做,这看起来非常非常奇怪。如果我的 facet 是 person_value_f 并且我想看到的值是“NO”,我怎么能厌倦基本上做分面导航?提前致谢

0 投票
3 回答
815 浏览

ruby-on-rails - 轮胎宝石:未定义的方法“检测”

我在我的 Rails 应用程序中使用了一些持久的轮胎模型。搜索一直工作正常,使用Tire.search ['index1','index2'], :load => true do ...但我现在创建了一个新的索引和模型,尝试将其包含在搜索中并访问其结果时出现以下错误:

我看到它来自 Tyre::Results::Collection#results,在最后一行:

出于某种原因records[item['_type']],我的其他模型返回了一个 Tire::Results::Collection 对象,但是对于新类,它返回了一个 AuthoredHistory 对象,这是我的实际模型类。我在 gem 的 github 页面上看到了一些关于这个的东西,但是我没有对 Tire.configuration.wrapper 做任何事情。我在所有索引模型中都包含持久性、搜索和回调模块。

我错过了什么吗?有人可以指出我正确的方向吗?(karmi,我希望你能在这里救我!)

[更新]

现在我到了某个地方......当结果只返回来自特定索引的 1 个结果时发生错误。如果一个索引有 2 个或更多结果,它会将其包装在 Tire::Results::Collection 中。现在要找破解...

[再次更新]

哈克解决方案找到了!看看下面的答案...

0 投票
1 回答
1468 浏览

ruby-on-rails - 为什么我的 mongo rails 应用程序中的 elasticsearch 索引没有更新?

我在我的 rails 3.2 mongo 应用程序中使用了轮胎 gem,但我遇到了 elasticsearch 没有更新的问题。我在下面包括了我的问题模型。

我通过运行创建新问题, Question.create(:question => "What day is it?", :answer => "Monday")但在搜索时不会出现Question.tire.search( "What day is it?" )。较旧的问题出现了,但似乎没有一个新问题被添加到索引中。

更新

日志中显示以下错误消息:

0 投票
1 回答
321 浏览

ruby - Tire gem - 它是否支持文档提升?

阅读 ElasticSearch 文档 (http://www.elasticsearch.org/guide/reference/mapping/boost-field.html) 它说您可以根据值提升文档,这种行为是否通过轮胎实现 - 我是如果是,则在语法上苦苦挣扎。

更新:

看起来像;

是我需要的,假设 _boost 列具有提升值?

0 投票
2 回答
4568 浏览

ruby-on-rails - ElasticSearch 过滤器匹配单个日期

一段时间以来,我一直在使用弹性搜索,但遇到了一个障碍,我必须搜索与特定开始日期 (start_at) 匹配的事件。我已将我的字段索引为

所以当我打

什么都不返回,但在单个范围内效果很好。那是

我为 Elasticsearch 建立了事件映射索引,以将 start_at 和 end_at 设置为日期,否则它会对这些日期执行术语匹配,但这样的事情不会是答案

由于这会执行字符串匹配,因此它会导致所有记录,因为标记器将分解为 2012、05、16,并且由于 2012 和 16 可能在多个区域中匹配,因此它将返回所有匹配项。

我知道我错过了一些非常基本的东西。我将不胜感激这方面的任何帮助。

更新

所以我那天有活动。现在,当我使用弹性搜索运行它时

0 投票
2 回答
685 浏览

ruby-on-rails - 如何阻止 meta_search 在我的模型上定义搜索?

我正在使用 active_admin 并将 meta_search 引入我的项目。(我不想用于其他任何事情)。

它似乎在我所有的模型上定义了搜索方法,这意味着当我包含轮胎时,我不能使用它的搜索方法。

它如何定义方法似乎也有些奇怪 - method_defined?说搜索方法没有定义,但是当我调用它时,我得到了 meta_search 一个。即使我在类中定义了自己的搜索方法,当我调用 Document.search 时,我仍然会得到 meta_search。

编辑:我会对处理这类事情的一般方法感兴趣 - 我已经通过使用 Model.tire.search 解决了这个特殊问题(因为轮胎也可以通过这种方式访问​​),但我仍然讨厌我的宝石我什至不使用都可以迫使我在项目的其余部分中使用解决方法。

编辑:我不知道在答案的答案中包含代码块的好方法,所以我会把它放在这里。

我对此的解释是,meta_search 如何在类尚未实际加载时检测是否已定义搜索存在错误。万岁!

0 投票
1 回答
2357 浏览

ruby-on-rails - 使用轮胎宝石为特定领域设置 Elasticsearch 分析器

我有一个 Resource 对象,它具有以下字段:titledescriptionbody

使用轮胎宝石,我想使用标准分析器进行标题描述,但对于身体领域,我想使用雪球分析器。

所以在我的resource.rb文件中,我有以下代码:

我将映射中的分析器设置为雪球。我验证这是否有效,因为如果我运行以下命令:

它将返回烹饪、煮熟等。

但是我希望能够通过以下查询

我希望elasticsearch在标题描述字段中搜索单词cooking ,并在body中搜索单词cook

这可能吗?而且因为我是整个搜索游戏的新手,这甚至是个好主意吗?还是我只是一个在火坑上玩弄汽油罐的人?

0 投票
1 回答
2750 浏览

ruby - 使用弹性搜索和轮胎忽略重音

我正在继承一个通过轮胎进行弹性搜索的项目。

搜索正在工作,但通过它关闭了口音。例如,搜索“this”需要返回“thís”和“thiš”。

我已阅读此轮胎文档: http: //karmi.github.com/tire/

以及:http ://railscasts.com/episodes/306-elasticsearch-part-1?view=asciicast

其中提到大多数弹性搜索的选项都可以在轮胎中使用。

关于忽略重音的搜索,asciifolding 不断出现,但弹性搜索只是这样说:

http://www.elasticsearch.org/guide/reference/index-modules/analysis/asciifolding-tokenfilter.html

此外,我发现了一些关于过滤器/口音/等的东西,例如:

https://github.com/elasticsearch/elasticsearch/issues/890
https://gist.github.com/2142635

但他们都在使用裸弹性搜索选项。

当我尝试在我的 ruby​​ 代码中使用 asciifolding 过滤器时,我收到关于没有为“asciifolding”定义过滤器的错误。

这是在我的代码中完成的搜索的内容 - 我如何修改它以进行不区分重音的搜索。它是asciifolding吗,如果是这样,我该如何在这里声明它?

编辑:或者它应该在映射/索引中完成?然后重新运行索引器。这是映射,我尝试将 :filter => "asciifolding" 放入某些索引,但这似乎不起作用(也不会生成任何错误输出):

0 投票
1 回答
651 浏览

ruby-on-rails - 依赖属性的动态索引(轮胎、导轨) - ElasticSearch

我有一些红宝石课

初始化类后,如何动态设置 index_name?

红宝石 (1.9.3) 轨道 (3.2.3) 轮胎 (0.4.2)

0 投票
1 回答
966 浏览

ruby-on-rails - 无法根据弹性搜索中的“缺失”字段过滤掉结果

我在我的rails应用程序中使用轮胎0.4.2与elasticsearch交互(使用mongodb数据库和mongoid与mongdb交互)。我有一个帖子模型,其中嵌入了垃圾邮件文档。

post.rb

垃圾邮件.rb

我想获取所有没有垃圾邮件文档的帖子:这是轮胎查询

生成的弹性搜索查询:

查询结果为我提供了存在垃圾邮件的文档,即使我只搜索缺少垃圾邮件文档的文档。我不知道我在做什么错误。谁能指出我正确的方向?