问题标签 [boolean-search]

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.

0 投票
1 回答
304 浏览

php - 全文搜索引擎,多列,布尔模式

我正在为一个 android 应用程序制作一个搜索引擎,该应用程序在布尔模式下对多个列进行全文搜索并匹配 '+word1 +word2'。但是,我无法获得任何搜索结果。

例如搜索字段类型-“open sea”然后,Sql 将搜索 Match...Against ('+open +sea' IN BOOLEAN MODE)

并显示可选结果列表,单击每个结果后,将在新页面上提供特定结果的详细信息。

对不起,我是android应用程序开发的新手。

这是我的 search.php 的 php 代码

0 投票
1 回答
218 浏览

ios - Sqlite查询也可以获取具有相邻单词的搜索词

我想使用 SQLite 中的查询返回搜索到的词,包括出现在搜索词之前和之后的相邻词。是否有可能做到这一点?还是我应该尝试另一种方式?

例如下面的句子(使用数据库表中的描述列,列名是DESC):

哪个会返回:

但是,我也想返回两个相邻的词“大多数”和“方法”,像这样:

我尝试使用 REGEXP 进行检查,但以下内容不起作用:

我可以得到那些带有查询或其他正则表达式的吗?

0 投票
0 回答
53 浏览

ruby-on-rails - 如何进行布尔分组搜索?

如何使用动态值在 ruby​​ on rails 中进行布尔分组搜索?谁能给我布尔分组搜索的示例或参考链接。

例子:

quick OR brown 应该首先执行,结果应该用 fox 进行 AND 搜索。

谢谢。

0 投票
3 回答
4625 浏览

python - Python 查询处理和布尔搜索

我有一个倒排索引(作为字典),我想将一个布尔搜索查询作为输入来处理它并产生结果。

倒排索引是这样的:

现在,给定一个布尔搜索查询,我必须返回结果。

例子:

布尔搜索查询:test AND try 结果应该是所有包含单词test和try的文档。

布尔搜索查询:test OR try 结果应该是所有具有测试或尝试的文档。

布尔搜索查询:test AND NOT try 结果应该是所有有测试但没有尝试的文档。

如何构建这个搜索引擎来处理给定的布尔搜索查询?

提前致谢!

0 投票
1 回答
138 浏览

elasticsearch - “反向布尔搜索”或通过关键字(使用布尔规则)系统构建订阅的最佳方法是什么?

我需要构建一个系统,当任何新帖子与用户定义的规则匹配时触发通知。

例如,系统中有用户列表(比如说数百万)。并且有大量的帖子被添加(数量也很大)。

一些用户希望在任何新帖子符合他定义的规则时得到通知。

该规则是一些布尔表达式,它描述了帖子中应该(或不应该)包含哪些词。

例如,用户 A 定义如下规则:

“如果任何新帖子包含“编程”或“编码”字样,我希望收到通知,但不应包含“javascript”字样。

伪逻辑表达式:

应将此类帖子通知具有上述规则的用户:

“使用 python 编程最佳实践”

另一方面,具有上述规则的用户不应该收到这样的通知:

“使用 javascript 和 nodejs 编程后端”*

所以它类似于“反向(布尔)搜索”(不知道如何命名)。

我的意思是,在“直接”布尔搜索中,用户将键入“programming python”,所有匹配编程python的帖子都将被返回。

但我需要相反:提供帖子,我需要返回与此帖子匹配的用户。

我正在考虑的一个“转储”解决方案是为此使用 ElasticSearch。在 ElasticSearch 中,我会存储用户定义的规则:

用户 A -> 规则 - (带有布尔规则的关键字),用户 B -> 规则 ...)

创建新帖子时,使用规则将在 ES 中通过该帖子的内容进行搜索(它只是在规则中搜索帖子单词的出现,而不应用任何布尔规则)。

因此,我将过滤(减少)可能的用户。假设这一步找到了 10000 个用户。

这篇新文章也将存储在 ElasticSearch 中(在另一个索引中)。

现在第二步,针对该单个帖子向 ElasticSearch (msearch) 索引 (posts index) 发出 BULK 搜索请求。

批量搜索请求将包含 10000 个查询(10000 个找到的用户),每个查询将包含单个用户的布尔规则(查询->布尔->必须...等)。

因此,只有匹配规则的用户才会收到通知。

您如何看待这个解决方案?据我所知,弹性搜索仅在搜索有限数量的第一个文档时速度很快,但我需要搜索数千个(对于第一步)。

也许 apache spark 更适合这个问题?(不熟悉,只知道它可以处理海量数据,想知道这个用例是否适合spark)。

您能否提供一些简短的建议或一些建议,我应该朝哪个方向去解决这个问题?

谢谢!

0 投票
1 回答
398 浏览

mysql - Laravel MySQL 搜索。允许用户进行自定义布尔搜索

我有客户对我正在做的员工管理项目的这个新要求,以允许他们的用户进行自定义布尔搜索。

基本上允许他们使用:AND、OR、NOT、括号和引号。

实现这一点的最佳方法是什么?我已经检查了 mysql,他们使用不同的语法。

这是测试场景:

要求: 搜索具有精英或老兵级别且来自新加坡的魔术师或野蛮人

布尔字符串:( "Magician" OR "Barbarian") AND (Elite OR "Veteran Level") and Singaporean

这是我将考虑修改的代码之一,我从基于纯 PHP 的布尔字符串搜索中获得

0 投票
0 回答
27 浏览

mysql - MySQL布尔搜索包括内部连接内的字段

我们如何在布尔搜索中包含来自内部连接的字段?我有这些表:

恢复:

国家

我想要的是搜索具有 Manager 或 Head 但没有文本菲律宾的数据。

我假设这个文本会起作用:'Manager Head -Philippines',但它不起作用。

我需要将国家名称“复制”到简历中吗?

这是目前我的查询:

0 投票
1 回答
66 浏览

javascript - JavaScript 变量声明/初始化可以使用布尔类型条件吗?

JavaScript 新手在这里。我在练习的解决方案中遇到了以下代码。我不确定它在做什么:

看起来它是在声明变量并初始化它们,但是赋值运算符右边的代码是一个条件语句。如果条件语句解析为假,这是否只是分配“0”,如果它们解析为真,则分配“1”?

更多的上下文,这是来自 CodeSignal 网站的练习 aboutIncreasingSequence。练习说明及完整解法如下:

给定一个整数序列作为数组,确定是否可以通过从数组中删除不超过一个元素来获得严格递增的序列。

注意:如果 a0 < a1 < ... < an,则序列 a0, a1, ..., an 被认为是严格递增的。仅包含一个元素的序列也被认为是严格递增的。

例子

对于 sequence = [1, 3, 2, 1],输出应该是几乎IncreasingSequence(sequence) = false。

这个数组中没有一个元素可以被删除以获得严格递增的序列。

对于 sequence = [1, 3, 2],输出应该是几乎IncreasingSequence(sequence) = true。

您可以从数组中删除 3 以获得严格递增的序列 [1, 2]。或者,您可以删除 2 以获得严格递增的序列 [1, 3]。

0 投票
3 回答
38 浏览

javascript - 当我按下按钮时,它会将 davyd 更改为 Ace,将 Ace 更改为 Davyd

在我运行下面的代码的那一刻 - 我按下按钮,它从 Davyd 变为 Aces ,从 Ace 变为 davyd。现在我如何使按钮从 Davyd 变为 Ace 到 Walter 到 Juan?

谢谢!全新的 Javascript

0 投票
0 回答
293 浏览

linkedin - LinkedIn布尔搜索参数'geoUrn'

我正在尝试从我的应用程序构建布尔搜索查询。代码之前运行良好,但现在位置参数存在问题。

我的旧代码会生成这个字符串(之前效果很好):

https://www.linkedin.com/search/results/people/?facetGeoRegion=["ca:0"]&keywords=((html5))&title=((自动化))

现在 LinkedIn 生成这个字符串:

https://www.linkedin.com/search/results/people/?geoUrn=["101174742"]&keywords=((html5))&title=((自动化))

什么是参数“geoUrn”,我怎样才能获得国家-geoUrn 的关系列表?