问题标签 [sunspot]
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 - 使用 Solr 搜索按相关性排序结果
我是 Solr 搜索的新手,并试图掌握如何处理结果的排序。我正在使用 Ruby on Rails 和 Sunspot gem 来与 Solr 交互。
我有一个 Article 模型,它具有以下索引字段:
我希望能够在 Solr 上执行搜索:
- 在其他任何内容之前返回确切的标题匹配
- 具有较大 NumberOfReviews 的文章按比例给予正权重
理想情况下,我还希望能够做类似谷歌的事情,在某种程度上也发现了未遂事件和拼写错误,并且当用户似乎犯了错误时,建议进行替代搜索,尽管我不是确定这是可能的。
任何人都可以帮助或指出我正确的方向吗?提前致谢!
ruby-on-rails - Ruby on Rails:人们如何在站点上使用删除引号的损坏的文本字段解析来制作搜索表单?
我正在使用 Sunspot Solr 搜索,它在大多数情况下都适用于基本搜索。它应该能够处理短语周围的引号,因此搜索test case
将返回带有测试和案例的文档,而搜索"test case"
应该返回带有短语测试用例的文档。
然而,我一直在努力解决这个问题,因为 Rails 似乎在用户输入进入搜索引擎之前就已经从用户输入中删除了任何外部引号。因此返回与但或(带有前导和尾随空格)实际工作"test case"
的完全相同的结果,在第一种情况下,因为外部引号被剥离而留下内部引号,而在第二种情况下,因为此问题仅影响前导和尾随引号分数。test case
""test case""
"test case"
显然,这是一个已知的错误,并且已被Rails 团队标记为不会修复。我真的很惊讶我在网上找不到这么少,因为它似乎是非常常见的功能。
人们如何解决这个问题?因此,要求用户双引号对我来说似乎不是一个合理的解决方案,而且我并不特别想对 Rack 进行自定义修改。
ruby-on-rails - Solr/Lucene 是否可以先按相关性排序,然后按第二个属性排序?
在 Solr/Lucene 中是否可以先按相关性排序,然后按第二个属性排序?
据我所知,如果我设置了排序参数,它会完全覆盖相关性,并按排序参数排序。
我怎样才能让结果首先按相关性排序,然后在两个具有完全相同相关性的条目的情况下,对按字母顺序排在第一位的项目表示点头。
如果这有什么不同,我将通过 Ruby on Rails 中的 Sunspot 使用 Solr。
ruby-on-rails - Debugging Solr search queries on Sunspot
How can I debug Solr search queries when using the Sunspot gem on Rails? I have some queries that are returning bizarrely high scores, and I'm trying to get to the bottom of why this is happening.
It doesn't seem like any debugging information is exposed to Sunspot, so I think that I need to debug through Solr directly. Fortunately, Solr has a handy web interface to search from, but for some reason, any queries I enter there return with 0 results.
For example, when I search for the word "test" on my web app, it returns plenty of hits. When I search for the same thing on the Solr admin interface this is what I get:
javascript - 当我告诉它不要时,输入字段正在清除文本
我有一个用 编写的输入字段onfocus="this.value=''
,但最近决定将其更改为onfocus="this.select()
。麻烦的是我去换的时候还是清零!我搜索了我的整个 javascript 库、html,一切都在寻找可能导致这种情况的原因。没有什么被称为喜欢的。
我尝试清除缓存。我试着寻找value=''
和cl(
有谁知道我怎么调试这个?或者更糟糕的是,覆盖它正在做的事情以使其做我想做的事?
我的代码:
我也试过:
谢谢!
ruby-on-rails - 为什么 Sunspot 会更改搜索 DSL 块中的“self”?
我注意到(并在太阳黑子代码中验证)以下行为
在上面的代码中,DSL 块可以访问上下文中定义的变量。但是self
内部块指向类的实例
Sunspot::DSL::Search
(而不是类的实例 Foo
)。当我尝试访问self.id
时,而不是获取
对象id
的;Foo
我得到id
一个Sunspot::DSL::Search
对象。
我认为 Sunpot 在 Util.instance_eval_or_call
方法上做了一些绑定交换/委托魔术。
我很好奇为什么 Sunspot 会这样做,以及为什么文档中没有关于这种行为的警告。
编辑:
太阳黑子搜索方法可以在这个链接找到
下面的代码将说明我的观点。在该方法foo
中,我有一个行为符合预期的块。在 methodbar
中,块没有行为。
笔记2
我在 Sunspot 源代码树中找到了修改正常块行为的代码。我的问题是关于像这样操纵绑定的原因。
注3
具体来说,我在调用id
块内部的方法时发现了一个问题。该search
方法将块内的方法调用委托给 DSL 对象,如果找不到该方法,则将调用重新委托给调用上下文。在注册委托代码之前,搜索方法会从 DSL 对象中去除除基本方法之外的所有方法。该id
方法没有被剥离。这导致了问题。对于所有其他方法,委派工作正常。
Sunspot 方法文档中未记录此行为。
ruby-on-rails - 太阳黑子 Solr 匹配单个对象
我在我的 RoR 应用程序中使用 Sunspot gem 对Post
模型进行搜索,它非常适合。但是,我需要对单个帖子对象使用它的匹配算法。
例如,我可以像这样搜索所有帖子:
但是,我需要对单个帖子对象进行搜索,如下所示:
这可能吗?
我想在单个帖子对象上使用相同的匹配算法来检查它是否匹配。
ruby-on-rails - nil:NilClass 的未定义方法“all_text_fields”
我正在使用 Rails 2.1 并实施了太阳黑子搜索。服务器运行良好,但问题是当我搜索文本时,它显示如下错误:
任何了解此问题解决方案的人都可以帮助我吗?
谢谢你。
ruby-on-rails - SunSpot Solr 中的嵌套搜索
我正在尝试实现基于 Solr 的消息线程搜索。每条消息可以有许多回复(回复只能是一个级别的深度。)。我想检索内容与搜索键匹配的父消息或与搜索键匹配的回复。
例如:
搜索Janice
应该返回以下结果集:
我的模型如下:
用于指定嵌套子查询的 DSL 语法是什么?
编辑 1
我考虑创建一个复合文本索引字段来保存所有索引。但是这种方法在我的场景中是不可行的,因为我必须确保回复符合某些附加标准。
在上述模型中,我想将文本搜索限制为给定类别。
ruby-on-rails - 使用 sunspot-rails 提升 Lucene 术语
我在使用 Lucene 的 Term [Boosting][1] 查询语法时遇到问题,特别是在 Ruby on Rails 中通过 sunspot_rails gem。这样您就可以在查询期间指定特定术语的权重,并且与特定字段的权重无关。
sunspot 生成的 HTML 查询使用 qf 参数指定要按照配置搜索的字段,以及查询本身的 q 参数。当插入符号添加到搜索词以指定提升时(即 q=searchterm^5),它不返回任何结果,即使在没有提升词的情况下会返回结果。
另一方面,如果我手动创建一个 HTTP 查询并手动指定要搜索的字段 (q=title_texts:searchterm^5),则会返回结果并且分数似乎会受到提升的影响。
简而言之,查询词提升似乎不能与 qf 指定的字段一起使用。
我的应用程序要求搜索多个字段,使用与这些字段相关联的相应提升,有条件地依次提升查询的各个术语。
有什么见解吗?
[1]: http: //lucene.apache.org/java/2_9_1/queryparsersyntax.html#Boosting a Term