问题标签 [ferret]

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 投票
2 回答
447 浏览

ruby-on-rails - 雪貂在铁轨上出现“无法将数组添加到 BooleanQuery”错误

我正在尝试在我的 RoR 网站上使用一个简单的搜索表单。我有以下代码:

(在 note_controller.rb 中)

(在 note.rb 中)

(在 index.html.erb 中)

(在 search.html.erb 中)

正如您希望从上面看到的那样,我有一个模型,我已经告诉acts_as_ferret。然后,我的控制器中有一个搜索操作,它尝试呈现到 search.html.erb 视图。我在索引视图中有一个用于搜索的表单。但是,当我运行它时,我收到以下错误:

无法将数组添加到 BooleanQuery

我想我的表格做错了,所以雪貂以某种方式获取了错误的数据。我所做的 form_tag 事情是正确的吗?任何帮助将非常感激。

更新:

以下是我似乎可以从日志中提取的唯一一点。我正在使用 Heroku,它似乎并没有给出标准的日志文件。希望这会有所帮助。

0 投票
8 回答
25575 浏览

python - 有纯 Python Lucene 吗?

红宝石人有雪貂。有人知道 Python 有什么类似的倡议吗?我们目前正在使用 PyLucene,但我想研究转向纯 Python 搜索。

0 投票
1 回答
81 浏览

ruby-on-rails - 我应该使用哪些关联才能按 Rails 应用程序中的关联模型对搜索结果进行排序?

我目前正在编写一个应用程序,它从 twitter 中提取所有带有链接的推文,并将它们放入我们的可搜索数据库中。

我们的数据库表如下所示:

我们希望能够在 tweet.content 列中搜索搜索词,并将结果按 link.count 排序

建立模型关联以实现此目的的最佳方法是什么?执行搜索的最佳方式是什么?我研究了acts_as_ferret,但我不知道如何对结果进行排序。

谢谢,丹尼尔·埃里克森

0 投票
1 回答
346 浏览

ruby-on-rails - 在生产模式下使用acts_as_ferret 的DelayedJob

通过 DelayedJob 运行任务时出现以下错误:

从错误中可以明显看出delayed_job 找不到ferret_server。但是,当我在生产模式下从控制台运行此 SAME 任务时,它工作正常。我如何确保延迟作业有任何想法:

  1. 真正加载了生产环境。我在 script/delayed_job 中设置了 RAILS['ENV]] = 'production' 以确保这一点。(我想这应该不错)

  2. 通过模型配置雪貂?

0 投票
1 回答
180 浏览

ruby-on-rails - 使用 Ferret 构建独特的标签云

在我正在进行的一个小项目中,我一直在使用 Ferret 作为我的全文搜索引擎。

通过在线文档和一些示例,我已经能够使用全文索引将标签云生成器组合在一起,以帮助使用该IndexReader.terms方法生成标签云。

到目前为止,当我想根据搜索结果获取术语数据时,它工作得很好。

例如,如果用户搜索“cake”,我想向他们展示与“cake”相关联的术语标签云。

我一直在寻找terms可以将该方法与搜索结果集或类似方法结合使用的示例?

目前我正在使用以下方法来生成我的标签列表:

干杯。

0 投票
3 回答
361 浏览

ruby - Ferret 是否足够稳定,可以在生产中使用?

Ferret Lucene 的 ruby​​ 实现相当强大,但是 2008 年的在线讨论似乎表明 ferret 存在许多稳定性问题并且会定期出现段错误。今年有 10 次左右的提交,所以该项目的活动非常少。

Ferret是否足够稳定,可以在生产中使用?

0 投票
2 回答
2135 浏览

ruby - 使用 Ruby C 扩展的垃圾收集

我正在通过 Ferret(Lucene 的 Ruby 端口)代码解决错误。Ferret 代码主要是 Ruby 的 C 扩展。我遇到了垃圾收集器的一些问题。我设法修复它,但我不完全理解我的修复 =) 我希望对 Ruby 和 C 扩展有更深入了解的人(这是我使用 Ruby 的第三天)可以详细说明。谢谢。

情况如下:

在 Ferret C 代码中的某些地方,我将“令牌”返回给 Ruby 土地。代码看起来像

frt_token_mark 调用 rb_gc_mark(token->text) 和 frt_token_free 只是用 free(token) 释放令牌

在 Ruby 中,此代码与以下内容相关:

令牌 = @input.next

基本上,@input 设置为某个对象,对其调用 next 方法会触发 get_token C 调用,该调用返回一个令牌对象。

在 Ruby 领域,我会执行类似 w = token.text.scan('\w+') 的操作

当我在 while 1 循环中运行此代码(以隔离我的问题)时,在某个时刻(大约当我的 ruby​​ 进程内存占用量达到 256MB 时,可能是某个 GC 阈值),Ruby 因错误而死,例如

在终止对象上调用的扫描方法

或者只是核心转储。我的猜测是 token.text 是垃圾收集的。

我对 Ruby C 扩展知之甚少,不知道 Data_Wrap_Struct 返回的对象会发生什么。在我看来,Ruby土地中的分配,token =,应该创建对它的引用。

我的“解决方法”/“修复”是在 @input 引用的对象中创建一个 Ruby 实例变量,并将令牌文本存储在其中,以获得对它的额外引用。所以C代码看起来像

所以现在我在输入实例变量中创建了一个“curtoken”,并在那里保存了文本的副本......我已经注意在@input的类的免费回调中删除/删除这个引用。

使用此代码,它的工作原理是我不再收到终止的对象错误。

这个修复对我来说似乎很有意义——它在 curtoken 中为 token.text 字符串保留了一个额外的 ref,因此在下次调用 @input.next 之前不会删除 token.text 的实例(此时 a不同的 token.text 替换 curtoken 中的旧值)。

我的问题是:为什么它以前不起作用?Data_Wrap_Structure 不应该返回一个对象,当在 Ruby 领域分配时,该对象具有有效的引用并且不会被 Ruby 删除?

谢谢。

0 投票
3 回答
1813 浏览

ruby-on-rails - 如何在 Windows 7 上安装 ferret gem?

我试图运行一个需要安装 ferret 的开源项目。使用 gem install ferret 安装它时,它给出了这个错误->

构建原生扩展。这可能需要一段时间... 错误:安装雪貂时出错:错误:无法构建 gem 原生扩展。

C:/Ruby/bin/ruby.exe extconf.rb 创建 Makefile

nmake 'nmake' 不是内部或外部命令、可运行程序或批处理文件。

Gem 文件将继续安装在 C:/Ruby/lib/ruby/gems/1.8/gems/ferret-0.11.6 以供检查。结果记录到 C:/Ruby/lib/ruby/gems/1.8/gems/ferret-0.11.6/ext/gem_make.out

所以,我尝试安装nmake(nmake15.exe),但我找不到它。它不能安装在 Windows 7 上。如何安装 ferret?

0 投票
1 回答
206 浏览

ruby-on-rails - 需要 act_as_ferret 和 will_paginate 的帮助才能一起玩得很好

我已经在我的系统上为 ruby​​ rails 安装了 will_paginate 和acts_as_ferret。
在安装acts_as_ferret 之前,我的分页似乎工作正常。当我输入代码进行搜索时,出现以下错误:

如果我去掉搜索功能,分页可以工作,但它没有意义,因为我不能进行搜索。任何人都可以帮我解决这个问题吗?

谢谢!!

斯蒂芬

0 投票
1 回答
141 浏览

ruby - Rails 项目中的雪貂错误

我使用acts_as_ferret的插件。当我使用 find_with_ferret 时,我遇到了这个问题。我从控制台收到了这样的错误消息

谢谢!