我一直在尝试在lucene中运行以下布尔查询,但它似乎失败。请帮忙。在Lucene中布尔搜索
(a或b)和c - >工作正常
(a和b)或c - >给出了A和B或C的结果。所以一个必须和b和c变得应该,而搜索结果是错误的。它应该像a一样工作,b必须可用或c可用。
又如:
如果你搜索“(A和B)”,它将返回X结果
如果你搜索“C”,它将返回是导致
如果您搜索对于“(a和b)或c”,结果数量不能小于x或y中的较大值。但是这没有发生。请帮助我该如何着手实施?
我一直在尝试在lucene中运行以下布尔查询,但它似乎失败。请帮忙。在Lucene中布尔搜索
(a或b)和c - >工作正常
(a和b)或c - >给出了A和B或C的结果。所以一个必须和b和c变得应该,而搜索结果是错误的。它应该像a一样工作,b必须可用或c可用。
又如:
如果你搜索“(A和B)”,它将返回X结果
如果你搜索“C”,它将返回是导致
如果您搜索对于“(a和b)或c”,结果数量不能小于x或y中的较大值。但是这没有发生。请帮助我该如何着手实施?
(a AND b)或c被转换为(+a +b) c
。你想要的是没有括号:+a +b c
。
从逻辑的角度来看,“A和B必须出现,C可能出现”相当于“A和B必须出现”。 (在古典逻辑中,没有办法说“可能是真的”)。因此,用布尔量表示(+a +b) c
会有困难。你可以做的一种方法是“(a AND b AND c)或(a AND b)”。
做一个b和c是你正在寻找的实际值? – PVR 2016-06-19 16:55:29