Syntax Solr查询行为

Syntax Solr查询行为,syntax,solr,lucene,edismax,Syntax,Solr,Lucene,Edismax,我有一个包含配方的Solr安装 每个配方都有多种成分,我目前正在建立一个配方搜索,你可以输入“包含/排除”,然后我有一个自制的重量系统,在这之后 但是,查询构建已关闭,因此需要改进 // Works perfect - 109 results ingredients:chicken OR tomatoes OR bacon // Down to 7 results - Definitely wrong ingredients:chicken OR tomatoes OR bacon AND -

我有一个包含配方的Solr安装

每个配方都有多种成分,我目前正在建立一个配方搜索,你可以输入“包含/排除”,然后我有一个自制的重量系统,在这之后

但是,查询构建已关闭,因此需要改进

// Works perfect - 109 results
ingredients:chicken OR tomatoes OR bacon

// Down to 7 results - Definitely wrong
ingredients:chicken OR tomatoes OR bacon AND -ingredients:garlic 

我尝试过以任何方式构建此查询,但无法找到可接受的“模糊过滤器”

尝试
配料:鸡肉、西红柿或培根和(-配料:大蒜)

我假设您正在将Solr 3.1与
eDisk
一起使用

我发现用括号括住否定查询是有效的。我还没有时间更详细地研究这个问题,弄清楚这是预期的行为还是一个bug。如果您对此进行更详细的调查并确认这是一个bug,那么请打开Jira问题


请注意,我上面建议的查询将根据您的配置在默认字段中搜索西红柿/培根。如果您只想在
配料中搜索它们,请使用
配料:(鸡肉或西红柿或培根)和(-配料:大蒜)
尝试
配料:鸡肉或西红柿或培根和(-配料:大蒜)

我假设您正在将Solr 3.1与
eDisk
一起使用

我发现用括号括住否定查询是有效的。我还没有时间更详细地研究这个问题,弄清楚这是预期的行为还是一个bug。如果您对此进行更详细的调查并确认这是一个bug,那么请打开Jira问题

请注意,我上面建议的查询将根据您的配置在默认字段中搜索西红柿/培根。如果您只想在
配料中搜索它们,那么使用
配料:(鸡肉、西红柿或培根)和(-配料:大蒜)
我会:

ingredients:((chicken OR tomatoes OR bacon) AND NOT garlic)
这对我有用

您可以这样添加所有排除项:

ingredients:((chicken OR tomatoes OR bacon) AND NOT (garlic OR peanuts OR spinach))
我会:

ingredients:((chicken OR tomatoes OR bacon) AND NOT garlic)
这对我有用

您可以这样添加所有排除项:

ingredients:((chicken OR tomatoes OR bacon) AND NOT (garlic OR peanuts OR spinach))

这可能会有帮助:不太多,我不知道如何将其应用到我的问题上。这似乎是同一个问题。。。你试过所有的建议了吗?你读过solr用户线程吗?这可能会有帮助:不太多,我不知道如何将其应用到我的查询中。这似乎是同一个问题。。。你试过所有的建议了吗?你读过solr用户线程吗?这对我来说非常有效。非常感谢。你可以看到,在这里进行的搜索对我来说非常有效。非常感谢。您可以在上看到搜索正在进行