问题标签 [solr-boost]
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.
join - Solr scoring based on subdocument (parent blockjoin)
I have the following structure of ... lets say products in a store. The Products have a rating. Then users can, additionally, rate the product (on their own). Lets say 300k Products plus 50k user-ratings (to each product)
Question 1: Are Subdocuments the right choice? I am adding everything with SolrJ, I did not find any other suitable method of doing that.
For sake of an example, you could copy and paste the following code to your collection:
Question 2 (The Important one): How can I query this index now, so that the documents are scored with a boost on the user-rating first (if one exists) and then by the product rating (and then by other fields, like the creation date, views, buys, ...)? Is that even possible?
I was looking into something like that:
That should return the documents in this order (ids): 3, 1, 2
But instead it returns:
solr-boost - 如何识别 solr 搜索结果中提升了哪些记录
我在我的项目中要求在那些已提升的记录上显示一个特殊标签。
用例:客户创建了一个提升规则来提升特定品牌的所有汤。现在当用户搜索词汤时,由于提升规则,给定品牌的所有汤将首先出现在列表页面中。现在的要求是在那些增强汤产品上显示一个特殊的标签。
尝试的方法:我分析了每条记录的分数,发现提升记录的分数是由我在提升规则中给出的提升值相加的。但是我没有得到任何明确的区别,因此我可以识别那些提升的记录并在它们上应用特殊标签。
寻找好的建议:)
solr - SOLR 精确匹配提升了包含精确匹配的文本
我找不到更好的标题,如果可能的话,我希望稍后根据您的最终建议进行更改。
我的问题:
我有一个音乐艺术家的数据库。这些看起来像这样:“dr. dre feat. akon”、“eminem & dr. dre”、“dr. dre feat. ll cool j”、“dr. dre”、“dr. dre feat. eminem & skylar gray” . 我们只有两个字段:id 和 name。
在默认模式 solr 核心上,我运行以下查询:“q=dr.dre”,结果还可以,但并不完美,如下所示:
- 博士。德雷壮举。阿孔
- 阿姆和博士 dre
- 博士。德雷壮举。会很酷j
- 博士。dre
- ...
请注意,他们得到了完全相同的分数。
我想要的是第一个结果是“dre 博士”,然后是所有其他结果,如下所示:
- 博士。博士<<--博士。dre 是第一位的
- 阿姆和博士 dre
- 博士。德雷壮举。会很酷j
- 博士。德雷壮举。阿孔
- ...
我如何实现这一目标?(过滤器、标记器、复制字段等并不重要。我无法更改 solr 内的代码,正如我在其他一些论坛上所建议的那样)
谢谢。
solr - 如何降低 dismax 中的术语
全部:
我想要做的是对内容字段中具有“季节”的文档进行高分,并在标题字段中严厉惩罚具有“季节”的文档并提升新创建的文档。
我想知道如何在 Dismax(或 eDismax)中做到这一点?谢谢
search - 有没有办法判断 SOLR 中的结果是否得到提升?
我有一个搜索系统,允许用户设置他们的偏好,然后根据这些偏好提升 SOLR 搜索的结果。当结果被提升时,我想给用户一些视觉反馈,但要做到这一点,我需要找到一种方法来判断特定结果是否被提升。
到目前为止,我已经考虑过使用分数值,如果分数高于某个阈值,那么我知道它已经被提升了,但是分数似乎从查询到查询变化很大,所以我不知道如何设置这样的门槛。
如果我在结果中以某种方式获得了预提升分数,那么我可以将其与最终的提升后分数进行比较,并知道结果已被提升,但我认为预提升分数不可用(请如我错了请纠正我)。
有没有人有任何其他想法如何实现这一目标?
java - lucene boosting如何受lengthNorm相似性的影响
我有两个文档,其中包含:
doc_1:one two three four five Bingo
doc_2:Bingo one two three four five
我在两个字段中分别编制索引,其中一个字段包含前 5 个术语,第二个包含最后一个术语。
为了更好地查看提升结果,我实现了以下相似性:
在不应用任何提升的情况下,在具有相同分数的两个文档中搜索Bingo
结果(如预期和预期的那样)。但是,当对其中一个字段 ( ) 应用提升时start_field.setBoost(5)
,两个分数保持相同,尽管doc_2的字段包含Bingo
被提升。
如果我删除customSimilarity
,提升按预期工作。
为什么会boosting
停下来lengthNorm
,我怎样才能使提升工作与给定的覆盖相似性?
apache - 即使我给出了高分,Solr 提升也没有按预期工作
我有一个搜索字段,用户可以根据三个字段搜索产品productCFN (String type)
:productBrand (String type)
和productUpnName (text type)
。我根据优先级给出提升值,以便结果以相同的顺序出现(最高提升值到最低提升值)。
但搜索行为未按预期工作(有时)。我已经给出了这样的提升值
productCFN 100 [我们根据为搜索字段提供的值自定义了提升值]
产品品牌20
产品名称 50
所以如果我在搜索,它应该首先搜索productCFN 然后productUpnName 然后productBrand 并且在相同的订单结果将显示在前端
我也检查了查询,似乎是正确的,但不知道为什么排序不起作用(我用“CC0”搜索)
我的问题是为什么即使我给 productCFN 打了最高分,productCFN 以“CC0”开头的产品也没有排在首位。
我认为整个问题是由于接近而造成的,但我已经给出了最低分值,但有时 resule 显示的顺序错误。
我正在使用StandardTokenizerFactory
Tokenizer 对空格进行标记,以及去除字符。它真的适合我的要求还是更好用KeywordTokenizerFactory
?
我也搜索过DISMAX
和EDISMAX
。如果与接近度和提升值一起使用,它真的会影响结果吗?
让我们再举一个例子,我有一个带有 productCFN 的产品X0406295L
,我开始搜索,X04
但它在顶部显示了错误的产品。
productCFN - 176-504
productUpnName - CASE 176-504 ATLANTIS SCREW TRAY FA
我很惊讶为什么它正在搜索上述产品,即使该产品没有任何品牌并且 UPN 名称也不包含X04
单词。它是否真的基于数字进行标记,因为04
存在。我对 solr 搜索完全感到困惑。
请帮我。
java - Solr 精确单词结果优先
在 Solr-5.0.0 中,我有一个product_name
字段。当我搜索一个词或多个词时,它会给出包含这些词的产品名称的结果。我怎样才能做到这一点,因为完全匹配是第一位的。
我的Schema.xml如下:
我的字段定义也在下面给出:
在索引时间或查询时间需要任何提升吗?还是别的什么?
solr - 确切的词对 Solr 没有太大的推动作用
作为给定链接中的参考
我试过一个例子。我的 schema.xml 配置如下。
精确的单词搜索适用于此。
但是具有精确匹配提升的模糊搜索并没有给出预期的结果。这是我的查询
有什么帮助吗?
solr - Solr Negative Boost Query 结果包含一些特定的词
我有一个字段item_name
,在 Solr 5.0.0 中被索引。如何对包含某些特定单词的查询结果进行负面提升?
例如,假设我item_name
喜欢:
如果我搜索,laptop bags
那么它会返回如下结果:
如何对item_name
包含以下单词的内容给予负面或低的提升:
有没有, ...
目标是item_name
包含这些单词不会出现在结果的顶部?
stopwords
注意:在这种情况下有什么关系吗?