Solr包含某些特定单词的负Boost查询结果

Solr包含某些特定单词的负Boost查询结果,solr,lucene,solrj,solr-boost,Solr,Lucene,Solrj,Solr Boost,我有一个字段item\u name,在Solr 5.0.0中索引。如何对包含特定单词的查询结果进行负面提升 例如,假设我有item\u name如下: Feggi Brown Laptop Bags Dell Laptop (Black) without Laptop Bag by Dell HP Laptop with Laptop Bag Sony laptop without bag Goldendays Laptop Bag 如果我搜索笔记本电脑包,它会返回如下结果: Dell Lap

我有一个字段
item\u name
,在Solr 5.0.0中索引。如何对包含特定单词的查询结果进行负面提升

例如,假设我有
item\u name
如下:

Feggi Brown Laptop Bags
Dell Laptop (Black) without Laptop Bag by Dell
HP Laptop with Laptop Bag
Sony laptop without bag
Goldendays Laptop Bag
如果我搜索
笔记本电脑包
,它会返回如下结果:

Dell Laptop (Black) without Laptop Bag by Dell
HP Laptop with Laptop Bag
Feggi Brown Laptop Bags
Sony laptop without bag
Goldendays Laptop Bag
我如何对包含以下单词的
项目名称
进行负提升或低提升:

有,没有

目标是包含这些单词的
项目名称
不会出现在结果的顶部

注意:在这种情况下,与
stopwords
有什么关系吗?

可以帮助您:

不支持真正的负提升,但可以使用非常“低” 查询子句上的数字boost值。总的来说,这个问题 让人困惑的是,“低”提振仍然是提振,它只能 提高匹配文档的分数。例如,如果你想 查找所有匹配“foo”或“bar”的文档,但会扣分 与“xxx”匹配的文档您可能会尝试

q = foo^100 bar^100 xxx^0.00001    # NOT WHAT YOU WANT 
…但这仍然有助于匹配所有三个条款的文档得分更高 然后是仅与前两个匹配的文档。一种伪造身份证的方法 “负面推动”是指对一切有影响的事物给予巨大的推动 不匹配。例如

q =  foo^100 bar^100 (*:* -xxx)^999
因此,在您的情况下,您必须执行以下操作:

q = item_name:laptop^100 item_name:bags^100 (*:* -item_name:with)^99 (*:* -item_name:without)^99
如果您正在使用(e)Demax,则告诉您:

当使用(e)Demax时,人们有时希望指定一个纯 “bq”参数大幅度提升的否定查询将起作用(因为 Solr会自动通过 添加一个隐式“:”--)但这不适用于“bq”,因为 通过“bq”指定的查询如何直接添加到主 查询你需要明确的表达

? defType = dismax 
& q = foo bar 
& bq = (*:* -xxx)^999

在您的情况下,似乎与DisMax中的
stopwords

没有关联,您可以使用以下代码降低字段“item\u name”中包含单词“with”或“without”的文档的相关性分数:

   - ['bf', "if(or(tf(item_name,'with'),tf(item_name,'without')),-5,0)"]
据我所知,这种语法适用于Demax,也适用于Solr和eDiscoveryMax解析器。上面的代码是yaml格式,用于VuFind中的相关性设置


是的,这和停止语有些关系。例如,使用停止词列表中的单词“with”,当您搜索带有西红柿的沙拉时,结果集将与沙拉西红柿的结果集相同。文档中出现单词“with”不会影响结果集的顺序

q=物品名称:笔记本电脑^100物品名称:行李^100(:-物品名称:带)^99(:-物品名称:不带)^99此问题无法解决使用dismax或eDisk
是否有任何方法?defType=demax&q=笔记本电脑包&bq=(*:*-带)^999
@alexf。。。我正在努力解决一个类似的问题,即应用负激励。我试图给现有的“bq”增加一个负面的提升。例如,对于bq=Source:simplecontent^10 Source:Help^20(ContentGroup local:(“开发者”))^-99。我希望在Solr查询解析器开始支持负boost时能够实现这一点。由于某些原因,一旦应用了否定查询,就不能在“bq”中添加任何其他boost参数。这是一种约束吗?