问题标签 [edismax]
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.
solr - Solr 日期提升并按相关结果排序无法正常工作
我正在实现 Solr dismax 搜索,并使用此功能recip(ms(NOW,PubDate),3.16e-11,1000,1000)
进行日期提升。一切正常,但只有一个问题。
如果搜索关键字在标题中重复出现,它们会比最近的结果获得更高的分数。
例如 1) 标题 = solr lucene
日期 = 1 天前
2) Title = solr lucene 是最好的,喜欢 solr lucene
日期 = 15 天前
如果用户搜索“solr lucene”,那么 #2 会排在第一位,因为关键字在标题中重复出现。
我有太多 1、2 或 3 天前的记录,它们甚至有完全相同的标题“SOLR LUCENE”,但这些记录并没有出现在第一页,只是因为旧记录的标题中有重复的关键字。
我不想完全按日期对结果进行排序。目前我正在像这样排序它。排序=分数降序,日期升序
solr - Solr:eDismax 并不总是使用 defaultOperator “AND”
我在 schema.xml 中将 defaultOperator 设置为“AND”:
<solrQueryParser defaultOperator="AND"/>
我在查询中使用 defType=eDismax。它工作得很好,但是当我想使用“AND”或“OR”运算符时,它不会使用“AND”作为我留下没有运算符的空白的默认运算符。
例子:
field1:a field2:b与field1:a AND field2: b做同样的事情:好的
field1:a OR field2:b:好的,我有我想要的所有结果
但
field1:a (field2:b OR field2:c)与field1:a OR (field2:b OR field2:c)做同样的事情:那不行
即使在这种情况下,我怎么能强迫他使用“AND”作为默认运算符?
solr - Dismax 请求处理程序
我正在使用 solr 按名称搜索一组数据(例如“Dan”或“Joe Smith”)。我想以另一个索引字段 double_score(例如 10.0 或 72.3)指定的顺序返回查询指定的结果(编辑:末尾带有通配符)。我目前有以下根本无法工作:
如果我删除评论,那么搜索确实有效,我所做的任何查询都会被 q.alt 替换,然后由 double_score 的值提升。如果这没有取代 q.alt,这将是预期的效果。
另请注意,虽然我还没有深入研究更有趣的可能性,例如标记名称,但我确实计划这样做。因此,任何可能的建议/解决方案都不应该排除这一点。
solr - 如何提升 solr 中的字段
我已经事先确定了提升。我在 solr 索引中有一个名为boost1
. 此提升字段的值介于 1 到 10 之间,类似于 google PR rank。这是应该应用于 solr 中运行的每个查询的提升。这是我索引中的字段
- ID
- 标题
- 文本
- 升压1
boost 字段应该适用于每个查询。我正在尝试实现类似于 Google PR rank 的功能。有没有办法使用 solr 做到这一点?
solr - Solr 3.3.0 - 在搜索中增加字段权重 - 提高字段优先级
我正在使用 solr 3.3.0 这些文档进行索引:
架构.xml
如您所见,如果我搜索“abc”,solr 会返回所有文档(我正在使用 solr.EdgeNGramFilterFactory 进行索引);我的成就是使用以下逻辑对结果文档进行排序:
- title_ex
- 标题
- 关键字_ex
- 关键词
- owner_ex
- 艺术家前
- 所有者
- 艺术家
我尝试了 "^" lucene sintax 和 dismax,但响应列表不是我想要的。
`http://localhost:8080/solr33a/core0/select?q=abc&defType=edismax&qf=title_ex^10%20title^8.0%20keywords_ex^6%20keywords^5.5%20owner_ex^1.2%20artist_ex^0.8%20owner^0.5%20artist ^0.2&fl=*,分数
结果:
solr - Solr eDisMax 查询
我有“拼写”字段,文本为“Quanti disperati si rovescerebbero con i barconi sulle nostre..”
我可以像这样通过 edismax 进行搜索:
或者
但是我怎么能搜索不到一个完整的句子,比如这个:
c# - Solr:如何搜索多个字段
我正在使用 solrnet。我有一个标题和描述字段。我需要同时搜索两个字段。我该怎么做呢?
php - 使用 PHP PECL 查询 Apache Solr 中的字段
我正在尝试使用 PHP PECL 查询 Solr 中的特定字段。
目前我正在使用 setQuery 函数,但这不允许我将查询设置为特定字段。
谢谢凯文
search - SOLR edismax 搜索
我在 SOLR 中有 2 个文档:
第一的
第二
http://localhost:8080/solr/select?q={!type=edismax qf=spell v='disperati si rovescerebbe*'} - 对我来说工作正常,它返回 2 个文档,但如何添加到此查询搜索也用身份证?
我需要这样的东西: http://localhost:8080/solr/select?q={!type=edismax qf=spell v='disperati si rovescerebbe*'} & {!type=edismax qf=id v='125 '} - 不正确。
java - solr dismax 词组搜索
我正在构建一个应用程序,它使用 solr 将较长的查询(通常是完整的句子)与几乎总是较短的索引文档(搜索词)进行匹配。所以,我的查询看起来像“我现在应该在利率低的时候买房子吗?我们在 2 年前提交了 BR。现在租房,有一些 sch 贷款债务”,我的索引文件就像“买房子”,“房子贷款利率”。
我认为正确的方法是使用 shingles、dismax 解析器和高度提升的“pf”字段。所以,我有一个“正常”的文本字段,kw_stopped(solr 3.4 中的 text_en)和一个非常激进的停用词列表,以及一个 kw_phrases 字段,它意味着短语 shingles。它的定义如下所示:
我的架构字段如下所示:
我的搜索处理程序配置是这样的:
当我打开 debugQuery 时,我注意到“kw_phrases”永远不会匹配,除非查询和文档完全相同。解析后的查询还显示,查询中的每个标记都显示为“kw_stopped”的单个 DisjunctionMaxQuery 子句,但所有带状疱疹都放在 kw_phrases 字段的一个巨大子句中。
我的理解差距在哪里?我怎样才能使这项工作?
谢谢!维杰