问题标签 [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.
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,它似乎并没有给出标准的日志文件。希望这会有所帮助。
python - 有纯 Python Lucene 吗?
红宝石人有雪貂。有人知道 Python 有什么类似的倡议吗?我们目前正在使用 PyLucene,但我想研究转向纯 Python 搜索。
ruby-on-rails - 我应该使用哪些关联才能按 Rails 应用程序中的关联模型对搜索结果进行排序?
我目前正在编写一个应用程序,它从 twitter 中提取所有带有链接的推文,并将它们放入我们的可搜索数据库中。
我们的数据库表如下所示:
我们希望能够在 tweet.content 列中搜索搜索词,并将结果按 link.count 排序
建立模型关联以实现此目的的最佳方法是什么?执行搜索的最佳方式是什么?我研究了acts_as_ferret,但我不知道如何对结果进行排序。
谢谢,丹尼尔·埃里克森
ruby-on-rails - 在生产模式下使用acts_as_ferret 的DelayedJob
通过 DelayedJob 运行任务时出现以下错误:
从错误中可以明显看出delayed_job 找不到ferret_server。但是,当我在生产模式下从控制台运行此 SAME 任务时,它工作正常。我如何确保延迟作业有任何想法:
真正加载了生产环境。我在 script/delayed_job 中设置了 RAILS['ENV]] = 'production' 以确保这一点。(我想这应该不错)
通过模型配置雪貂?
ruby-on-rails - 使用 Ferret 构建独特的标签云
在我正在进行的一个小项目中,我一直在使用 Ferret 作为我的全文搜索引擎。
通过在线文档和一些示例,我已经能够使用全文索引将标签云生成器组合在一起,以帮助使用该IndexReader.terms
方法生成标签云。
到目前为止,当我想根据搜索结果获取术语数据时,它工作得很好。
例如,如果用户搜索“cake”,我想向他们展示与“cake”相关联的术语标签云。
我一直在寻找terms
可以将该方法与搜索结果集或类似方法结合使用的示例?
目前我正在使用以下方法来生成我的标签列表:
干杯。
ruby - Ferret 是否足够稳定,可以在生产中使用?
Ferret Lucene 的 ruby 实现相当强大,但是 2008 年的在线讨论似乎表明 ferret 存在许多稳定性问题并且会定期出现段错误。今年有 10 次左右的提交,所以该项目的活动非常少。
Ferret是否足够稳定,可以在生产中使用?
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 删除?
谢谢。
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?
ruby-on-rails - 需要 act_as_ferret 和 will_paginate 的帮助才能一起玩得很好
我已经在我的系统上为 ruby rails 安装了 will_paginate 和acts_as_ferret。
在安装acts_as_ferret 之前,我的分页似乎工作正常。当我输入代码进行搜索时,出现以下错误:
如果我去掉搜索功能,分页可以工作,但它没有意义,因为我不能进行搜索。任何人都可以帮我解决这个问题吗?
谢谢!!
斯蒂芬
ruby - Rails 项目中的雪貂错误
我使用acts_as_ferret的插件。当我使用 find_with_ferret 时,我遇到了这个问题。我从控制台收到了这样的错误消息
谢谢!