- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
为什么在 Lucene.net 上使用 BooleanQuery 时第一个查询有效而第二个查询无效?
这是在 SHOPPING 字段上编入索引的示例:
Shoes for sale
Great bargain on shoes and accessories.
Buy cheap Shoes, Sneekers and Heels!
第一个查询(运行良好,它返回所有三个索引)。
Query query = MultiFieldQueryParser.Parse(Lucene.Net.Util.Version.LUCENE_30,
"Shoes", new String[] { "SHOPPING" }, new Occur[] { Occur.SHOULD },
new SimpleAnalyzer()
);
hits = indexSearcher.search(query);
第二个查询(不返回任何内容,条件是:返回所有带有“shoes”但没有“accessories”的术语)。
Query query1 = new TermQuery(new Term("SHOPPING", "shoes"));
Query query2 = new TermQuery(new Term("SHOPPING", "accessories"));
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.Add(query1, Occur.SHOULD);
booleanQuery.Add(query2, Occur.MUST_NOT);
hits = indexSearcher.search(booleanQuery);
最佳答案
我想我明白了。假设结合使用 MultiFieldQueryParser 和 BooleanQuery 来解决问题。
Query query = MultiFieldQueryParser.Parse(Lucene.Net.Util.Version.LUCENE_30, "Shoes", new String[] { "SHOPPING" }, new SimpleAnalyzer());
Query queryOrig = parser.Parse("shoes");
Query queryOrig2 = parser.Parse("accessories");
var booleanQuery= new BooleanQuery();
booleanQuery.Add(queryOrig, Occur.MUST);
booleanQuery.Add(queryOrig2, Occur.MUST_NOT);
hits = indexSearcher.search(booleanQuery);
关于c# - BooleanQuery 无法使用 Lucene.net 3.0.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326191/
假设我们有以下 Lucene 查询: +(f1:x f2:x) +f3:y 这意味着结果必须在字段“f1”或字段“f2”中包含值“x”并且字段“f3”必须包含值“y”; 在旧版本的 Lucene 中,
我正在尝试将一个 BooleanQuery 嵌套在另一个 BooleanQuery 中。 使用以下代码创建内部 BooleanQuery 并将其添加到 topBQuery。 BooleanQu
像这样的类别树: root_1 sub_1 sub_2 ... to sub_20 每个文档都有一个子类别(如 sub_2)。现在,我只在lucene索引中写了sub_2: new Num
我在 lucene 中搜索一个“等于”运算符,实现如下: return new TermQuery(new Term(getName(), getValue())); 对于这样的值:customerI
在 Luke 中,以下搜索表达式返回 23 个结果: docurl:www.siteurl.com docfile:Tomatoes* 如果我使用以下实现将相同的表达式传递到我的 C# Lucene
如果整个查询没有返回结果,我需要确定 Lucene BooleanQuery 的哪一部分失败。 我使用的是由 4 个 NumericRangeQueries 和一个 PhraseQuery 组成的 B
大家好,我有一个问题:) 我像这样创建一个 BooleanQuery : BooleanQuery.Builder qry = new BooleanQuery.Builder(); qry.add(
我正在使用 Hibernate Search/Lucene 维护一个非常简单的索引来按名称查找对象——没有花哨的东西。 我的模型类都扩展了一个类NamedModel,它基本上如下所示: @Mapped
我创建了一个示例 Lucene 代码片段,它索引一个小文件。我能够正确执行索引并搜索单个字段值。但是,我想查询多个字段。我正在使用 BooleanQuery ,但它不工作。 有人可以建议吗?这是我的代
一个Document是一家公司的员工数据,具有多个字段名称,例如:empName、empId、departmentId 等。 使用自定义分析器已对大约 400 万条数据建立了索引。 搜索查询有一个 l
int length3 = CheckBoxList4.Items.Count; int count = 0; for (int i = 0; i < length3; i++) {
如何在 Lucene 6.x 中实例化 BooleanQuery?如何使用 boolean 查询在其中添加其他查询? 在 Lucene 4.x 中,我们使用 BooleanQuery 如下:
为什么在 Lucene.net 上使用 BooleanQuery 时第一个查询有效而第二个查询无效? 这是在 SHOPPING 字段上编入索引的示例: Shoes for sale Great bar
我观察到一种奇怪的行为,但我不知道我做错了什么。 我通过多个 BooleanQueries 创建了以下查询: +(-(Request.zipCode:18055 Request.zipCode:333
我几乎是 lucene 的新手,正在尝试对一些查询进行 AND 运算并显示它们。我搜索了整个网络,但找不到解决此问题的正确方法。 boolean 查询搜索的解决方案包括BooleanQuery Luc
我是一名优秀的程序员,十分优秀!