我有一个包含多个字段的索引,其中一个是字符串字段,我在其中存储产品的类别名称…例如“电子”,“家庭”,“花园”等
new StringField("category_name", categoryName, Field.Store.YES)); //categoryName is a value such as "Electronics"
我正在执行布尔查询以按名称,价格和类别查找产品,但是我不确定如何执行“或”搜索,以便可以同时查询两个类别。
我当前的查询如下所示:
String cat = "Electronics"
TermQuery catQuery = new TermQuery(new Term("category_name", cat));
bq.add(new BooleanClause(catQuery, BooleanClause.Occur.MUST)); // where "bq" is the boolean query I am adding to, I tried .SHOULD but that didn't help either
这对于一个类别的搜索来说效果很好,但是我不确定如何搜索将是两个类别的“ Electronics OR Home”。
您可以这样写:
BooleanQuery categoryQuery = new BooleanQuery();
TermQuery catQuery1 = new TermQuery(new Term("category_name", "Electronics"));
TermQuery catQuery2 = new TermQuery(new Term("category_name", "Home"));
categoryQuery.add(new BooleanClause(catQuery1, BooleanClause.Occur.SHOULD));
categoryQuery.add(new BooleanClause(catQuery2, BooleanClause.Occur.SHOULD));
bq.add(new BooleanClause(categoryQuery, BooleanClause.Occur.MUST));
我的任务是使用lucene在我们的产品表中搜索。我已经创建了一个索引,正在使用带有多个字段的QueryParser进行搜索,但结果不是我所需要的。我有一个存储为LM10的产品,但如果搜索词是LM 10,我希望能够找到它,但如果搜索词是Fred LM10或Fred LM 10,它也必须能够匹配。你知道我如何在Lucene做到这一点吗。 提前谢谢
我正在使用Sitecore搜索数据库中的项目。
供参考:我的代码和这个so帖子非常相似。 谢谢
假设我存储的Lucene文档有一个表示正则表达式的存储字段。 即 我的搜索输入类似于。
我对Bool查询和在elasticsearch中查找精确值有点困惑。具体来说,我有一个title_field和post_field,我想搜索。但是我使用的所有其他字段,因为我想查找它们是否存在或不存在,或者有多少次(如网址或用户名,必须是准确的)。 因此,我可以从文档中看到,我可以对title_字段和post_字段进行多重匹配查询。 但我希望得到确切答复的其他领域呢?我是否执行布尔查询(使用mus
我在这里遵循指南https://dzone.com/articles/23-usplient-ellasticsearch-example-queries,下面的bool查询让我感到困惑: 根据教程,查询的解释是: 搜索标题中有“ellasticsearch”或“solr”字样的书,由“Clinton Gormley”撰写,但不由“Radu Gheorge”撰写 我的问题是,bool查询中有3个条