问题标签 [booleanquery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Nest Elasticsearch,结合 Must 和 Should 的 bool 查询
我想按年份、格式和内容过滤一组文档。
n 伪 SQL:
如您所见,格式和内容项的数量是动态的,将由用户选择。到目前为止,我想出了如何分别对每个字段进行动态查询,然后使用 bool 查询将它们组合起来,如下面的代码;
当我运行此代码时,年份和内容字段的结果是我所期望的,但过滤列表中没有的其他格式也包括在内!我希望它只检索具有所选格式的文档。有谁知道我的错误在哪里?
java - lucene BooleanQuery.Builder 构建不起作用
大家好,我有一个问题:)
我像这样创建一个 BooleanQuery:
如果我现在做这样的搜索:
它得到零结果?但是,如果我使用此代码:
然后我得到正确的结果?你能解释一下为什么我必须再次解析它吗?
我使用的是 5.5.0 版,名称是 TextField
regex - 用于匹配不正确的 AND OR 逻辑的正则表达式
我需要一个可以匹配不正确AND
/OR
逻辑语句的正则表达式,但如果它们在引号中则不能,例如:
不应在以下位置找到匹配项:
AND
如果或OR
两侧至少有 1 个空白字符加上 1 个非空白字符并且这些字符不是由OR
or组成,则不会有任何匹配AND
。因此,例如 ..R AND S.. 不应该匹配但(OR) OR (OR)
或(AND) AND (AND)
应该匹配。
火柴
AND
您会注意到一些示例在or运算符之前、之后或两侧包含空格OR
,这些也需要匹配。
我正在使用 .NET 框架,这就是我想出的有效方法。但是,这似乎太复杂了!必须有一种方法来简化它。
performance - 过滤布尔字段会增加延迟和 CPU
我正在使用 AWS ElasticSearch 服务 (1.5.2) 并且每秒接收超过 100 个请求而没有问题。
几乎每个查询都有地理过滤器、全文过滤器、整数过滤器……但我有一个问题,多添加一个简单的过滤器;一个布尔项过滤器。
添加布尔过滤器后,ElasticSearch 的所有节点中的 CPU 从 10% 增加到 30%,在 10-15 分钟内,平均延迟从 20 毫秒增加到 400 毫秒,一段时间后延迟恢复到正常数字,但 CPU 没有。
该布尔字段已正确映射并且可搜索......有人暗示过这个问题吗?(由于我使用的是官方 Java 库,查询是用“terms”而不是“term”形成的)。
java - 分层评分 Lucene,或长期治疗
我试图将兴趣配置文件翻译成一些 Lucene 查询。
给定一个标题词和一些扩展词,采用 JSON 格式,例如
{"title":"Donald Trump", "Expansion":[["republic","republican"],["democratic","democrat"],["campaign"]]}
对应的 Lucene 查询可以是 BooleanQuery,如下所示(设置标题词提升因子为 3.0,扩展词提升因子为 1.0)。
+(text:donald^3.0 text:trump^3.0 (text:democrat text:democratic) (text:republic text:republican) text:campaign)
使用IndexSearcher's explain()
方法,
一个匹配的文件,如,
I know people just want to find a way to be famous without taking any risks, republic republican Donald Trump Campaign.
得分为 9.0
有什么方法可以重写 Lucene 评分函数,对 BooleanQuery (text:republic text:republican) aka 进行评分。集群["republic","republican"]
作为“republic”的匹配权重或“republican”的匹配权重的最大值?
java - Lucene 6.0!如何实例化 BooleanQuery 并在其中添加其他搜索查询?
如何在 Lucene 6.x 中实例化 BooleanQuery?如何使用布尔查询在其中添加其他查询?
在 Lucene 4.x 中,我们使用 BooleanQuery 如下:
如何在 Lucene 6 中实现这一点。
mysql - 检查搜索查询是否用于布尔模式
我应该如何检查查询是否应该用于 MySQL Boolean Mode FULLTEXT 搜索而不是 NATURAL MODE 搜索?使用正则表达式或其他方法检测特殊字符运算符,例如 +、-?
elasticsearch - Elasticsearch - 如何猜测查询中的重要单词?
假设我们正在对可用职位索引执行两个查询,如下所示:
- PHP 开发人员
- 红宝石开发人员
当执行简单的布尔AND查询时,像PHP Programmer这样的职位将被排除在外,因为缺少developer。当对包含Ruby 开发者的PHP 开发者文档执行OR布尔查询时,结果中也将包含该文档。
在PHP Developer中检测到PHP比Developer更重要的最佳方法是什么?
因此,当对PHP Developer执行搜索时,PHP术语必须出现在结果中,但Developer部分只会增加分数。
elasticsearch - Elasticsearch 中布尔查询中“必须”的 Min_score
有没有办法在弹性搜索的布尔查询中将最低分数应用于必须子句。
我希望能够做这样的事情:
这将要求名称查询与分数 > 0.3 匹配,地址查询与分数 > 0.3 匹配,才能返回文档。这是为了阻止返回非常好的名称匹配,尽管地址匹配很糟糕(例如,仅匹配 1),反之亦然。
我目前正在使用 Elasticsearch 1.5,但我过去也希望在 2.3 中使用它。
arrays - 数组字段中的布尔查询
关于查询嵌套到数组字段的布尔字段和字符串字段,我有一个非常特殊的问题。索引映射如下:
文档索引还有许多其他字段,它们没有嵌套到数组字段中,但必须包含在查询字段中。我尝试了一种使用过滤器和布尔查询的方法,如下所示:
此查询的问题在于它返回的文档在我看来不必返回。在这种情况下,文档如下:
如您所见,array_field_1 的第三项包含 boolean_field_2: false 以及正在搜索的文本。但是,根据我的 filter: 子句,只有 array_field_1.boolean_field_2 为 true 的文档必须被检索,除非 array_field_2.integer_field_1: 或 array_field_3.integer_field_1 出现,根据我的查询部分,这是不正确的。似乎弹性没有考虑到 array_field_1[2] 是 boolean_field_2 为假的那个。如何进行查询,以免检索到此文档?
谢谢,Guilherme