【问题标题】:Solr query behaviourSolr 查询行为
【发布时间】:2011-07-30 07:57:41
【问题描述】:

我有一个包含配方的 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 

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

【问题讨论】:

  • 这可能会有所帮助:stackoverflow.com/questions/634765/…
  • 不多,我不知道如何将其应用于我的查询
  • 这似乎是同一个问题...您是否尝试了所有建议?你读过 solr-user 的帖子吗?

标签: syntax solr lucene edismax


【解决方案1】:

试试ingredients:chicken OR tomatoes OR bacon AND (-ingredients:garlic)

我假设您正在使用带有edismax 的 Solr 3.1。

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

请注意,我上面建议的查询将根据您的配置在默认字段中搜索西红柿/培根。如果您只想在ingredients 中搜索它们,请使用ingredients:(chicken OR tomatoes OR bacon) AND (-ingredients:garlic)

【讨论】:

    【解决方案2】:

    我愿意:

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

    这对我有用。

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多