问题标签 [sunspot-rails]
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 - 太阳黑子:更新子模型时父模型的强制索引
我正在使用 Sunspot 生成很多我的应用程序索引和概览。
在这个应用程序中,我有 2 个具有父/子一对多关系的模型。使用 Sunspot,我可以索引父母拥有的孩子的数量,因此可用于排序、范围界定等。
但是,当我更改子模型时,父模型不会自动重新索引(因为它没有更改)。通过对孩子的 call_back 强制 parent.save 也不会强制索引。
所以在我开始破解之前:
当更改/添加子模型时,在 Sunspot 的父类上强制执行索引操作的最佳方法是什么?
ruby-on-rails - 使用 Sunspot 生成索引视图 - 这很聪明吗?
我们目前正在开发应用程序,其中许多“索引”视图使用大量虚拟属性。同时我们需要全文搜索功能。
我们选择的解决方案是使用 Sunspot/Solr 来索引模型,包括虚拟属性。然后,我们使用 Sunspot 检索正确的记录、对其进行排序、搜索等。这一切在我们的开发设置中运行良好。
显然,这种方法需要我们保持 Solr-index 与数据库同步,否则用户将不会在索引页面上看到他新创建的记录。为此,我们在应用程序的各个点强制执行索引操作。
在我们构建这个解决方案之前,我只是想检查一下以这种方式使用 Sunspot 是否存在问题。特别是,如果应用程序变得更大,是否必须使索引保持完美同步才会开始产生影响?
这似乎是处理索引页面中虚拟属性的一种非常好的方法,但我想确保它不是真的很好......
感谢我们的帮助
欧文
ruby-on-rails - Rails Sunspot - 是否可以按值检索构面行?
如果我有一个查询方面(因此知道该行的value
),是否可以根据已知从该方面检索特定行value
?
然后在视图中我会做这样的事情:
这将有助于我格式化/美化我的视图输出。
这样的事情可能吗?
ruby-on-rails - 无法连接到 Ubuntu 服务器中的 Sunspot 服务器
我按照https://github.com/outoftime/sunspot/wiki/Adding-Sunspot-search-to-Rails-in-5-minutes-or-less中的步骤在 Mac 的 Rails 中安装和设置 Sunspot 搜索操作系统,没关系。
在 Ubuntu 服务器中,出现连接被拒绝错误。
当我跑
过程开始。该文件sunspot-solr-development.pid
是在/tmp/pids
. 但是当我尝试重新索引时
我尝试运行命令sudo
并授予777
项目文件权限,但仍然存在错误。导轨 3.0.8。
有任何想法吗?
solr - 没有将 facet.date.start 设置为随机过去日期的所有时间数据
我使用以下查询来获取 Posts 的时间序列数据。
有没有办法在不将 facet.date.start 设置为随机过去日期(比如 100 年)的情况下获取所有时间数据?
ruby-on-rails - sunspot_rails Levenshtein 距离算子
我正在使用 sunspot_rails(在 rails3 上)将我的 rails 应用程序连接到 solr 服务器。我真的很想使用 ~ 运算符执行模糊搜索。无论如何,这似乎不受支持。我现在回退到使用 EdgeNGrams,但我对结果并不完全满意。
有什么建议吗?有没有人能够通过 sunspot_rails 进行 Levenshtein 距离搜索?
解决了
Sunspot 提供的adjust_solr_params方法允许您覆盖默认查询解析器,以便您可以使用支持 ~ 的解析器。基本上,我让 Sunspot 使用 lucene 查询解析器设置 defType 参数:
sunspot - Sunspot Rails 按模型 ID 排序搜索结果?
假设我有以下模型,并且我已使用sunspot_rails
.
schema.xml
Rails 中 Sunspot 的标准声明id
为索引字段。当我使用 Web 界面访问 solr 和测试查询时,查询如下:
搜索Cases
与id
等于Case 15
工作正常并返回结果。
问题是当我在 rails 控制台中使用 Sunspot Rails 进行搜索时:
我得到:
这表明它正确输入:q
了正确的查询值,但命中为 0:
返回
如果我们假设它keywords
不等效并且只搜索text
字段(全文搜索)而不是冒号之前定义的字段:
,那么我可以尝试以下操作:
但这因太阳黑子异常而失败:
如何使用id
模型的索引标准 solr/sunspot 字段进行搜索?
为了使问题更有用,我如何按 id 排序。以下不起作用:
不起作用。Sunspot::UnrecognizedFieldError: No field configured for Case with name 'id'
ruby-on-rails - 使用 sunspot_rails 编写 RSpec 规范以测试应用程序
有没有人有一个很好的例子,将 RSpec 与 sunspot_matchers gem(或只是普通的 RSpec)一起使用来测试使用 sunspot gem 的代码?
我试图弄清楚这个错误是怎么回事,但找不到任何可靠的例子。
以下是我目前正在处理的模型、规范和规范输出的片段:
/models/channel.rb
/spec/models/channel_spec.rb
RSpec 输出,带有 (r)、(y)、(g) 来显示失败、未决和通过的规范
我正在尝试在上面显示的模型中测试 if/else 条件。
有任何想法吗?或者对整体方法的建议?
一些好的例子/文档会很棒......或者我可能只是在某个地方错过了一些东西。
谢谢,
肯顿
ruby-on-rails - Sunspot-solr 占用了太多内存?什么是减少内存使用的便捷方法?
所以看起来 Sunspot-Solr 正在消耗大量内存。这可能是由于我作为程序员分配正确使用它的不当行为。
首先,我不允许太阳黑子自行重新索引。
我相信仅此一项就可以防止它重新编制索引。相反,我在每天清晨运行一次的 cron-tab 上运行重新索引过程。
我开始这样做的原因是,随着应用程序的扩展,数据似乎在机器上堆积得如此之多,以至于仅仅加载主页就需要相当长的时间。
我做错了什么导致以下错误?我能做的更好吗?
有问题的错误:
ruby-on-rails-3 - Sunspot_Rails - 页面上未定义的方法“可搜索”
我有一个带有searchable
块的模型,如下所示:
在控制器的index
操作中,我正在调用Contact.new
,这会在页面上给我一条错误消息,该页面当前正在我们的暂存服务器上运行:
#<Class:0xce0bf80> 的未定义方法“可搜索”
堆栈跟踪通过控制器中的线路指向searchable
模型中的块。Contact.new
当我在网页或控制台上或通过登台服务器上的控制台在本地运行代码时,不会出现此错误 - 仅在登台网页上。
Solr 服务在 Staging 服务器上运行良好,数据已成功建立索引。任何关于为什么它在 Staging 中没有发挥作用的理论都将被接受。
编辑
为了回答尼克在下面的问题,Gemfile 只为太阳黑子提供了这一行:gem 'sunspot_rails'
对于 Gemfile.lock,这些是我可以发现的所有包含 Sunspot 或 Solr 引用的行: