GitHub有一个基于弹性搜索的搜索系统,该系统具有许多高级功能,例如搜索存储库或用户。使用Google,我可以在GitHub上搜索替代方案。但是GitHub的搜索语法仅包含否定运算符。

如何在GitHub的搜索中使用其他逻辑运算符?

弹性搜索中是否可能有一个可以利用的功能用于过滤或组合布尔查询?

评论

值得注意的是AND和OR不再可用。

相关:我可以使用逻辑运算符OR搜索github标签吗?

#直到2019年末还有几天...但是,在查询中不能使用OR。有一个问题:github.com/isaacs/github/issues/660

#1 楼

GitHub的内置搜索涵盖andnotor运算符,以及各种其他比较。 GitHub的一般搜索准则位于:https://help.github.com/articles/searching-github/

,其搜索语法在此处描述:https://help.github.com/文章/搜索语法/

评论


是的,AND,NOT和OR现在可以工作。感谢您的回答!

– Bengt
2015年11月10日17:05

这些链接上没有任何内容说明如何使用AND或OR,它们似乎对我没有用。

–克里斯托弗(Christopher)
17年9月22日在22:00

该答案在初次编写时可能已经奏效,但现在绝对不能奏效(2020年5月)。

–加百利·斯台普斯
20年5月2日在18:28

在进行文本搜索时,它对我有用,但是区分大小写。这将返回预期结果:is:pr is:merged(JIRA-0001或JIRA-0002),但不是:is:pr is:merged(JIRA-0001或JIRA-0002)。两者都不适用于限定词。

–blindsnowmobile
20-11-21在19:53



它对我不起作用。 is:open is:pr受让人:@me和is:open is:pr审阅要求:@me都可以,但是is:open is:pr(受让人:@me或审阅要求:@me)不起作用。

–约翰·弗里曼(John Freeman)
20/12/18在14:06

#2 楼

默认搜索的工作方式似乎是每个搜索键值对之间都有一个隐含的AND运算符:

is:pr is:open author:monishdeb


如果为一个键指定多个键值对,它使用最后一个,并在显示结果时在查询中抑制较早的查询。

高级搜索的工作方式就像每个搜索键值对之间都有一个隐含的OR运算符:

author:monishdeb author:pradpnayak repo:civicrm/civicrm-core


没有办法组合我发现的AND和OR运算符。因此,我认为不可能从单个回购中从多个作者中找到任何一个打开的PR。

NOT运算符可用于排除字符串:https://help.github.com / articles / understanding-the-search-syntax /

评论


至少在我使用repo搜索多个存储库时,我能够确认GraphQL API搜索在术语之间具有隐式OR:

–乔什·德兹拉克(Josh Dzielak)
19 Mar 10 '19 at 13:51

我刚刚写的相关答案:stackoverflow.com/questions/29136057/…

–加百利·斯台普斯
20年5月5日在16:47

“高级搜索的工作原理是,每个搜索键值对之间都有一个隐含的OR运算符:”这不太正确。它的作用就像在每个搜索键值对之间存在一个隐含的AND,并且在相同键的重复使用之间存在一个隐含的OR。所以,我已经在这里的新答案中写了这个:webapps.stackexchange.com/a/142071/126659。

–加百利·斯台普斯
20年5月5日在16:56

#3 楼

默认的“拉请求”搜索(https://github.com/pulls)在所有搜索字段之间似乎都有一个隐含的AND,但是如果您重复一个字段,它将忽略除最后一个字段之外的所有字段。所以这个:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3


...变成这个:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-3


...就像就是这样:

is:open AND is:pr AND review-requested:ElectricRCAircraftGuy 
AND archived:false AND author:my-teammate-3


但是,GitHub全局搜索(https://github.com上任何页面的左上栏)似乎都有一个隐式所有搜索字段之间的AND,以及要重用的字段之间的隐式OR,因此:

is:open is:pr review-requested:ElectricRCAircraftGuy archived:false 
author:my-teammate-1 author:my-teammate-2 author:my-teammate-3


...的行为就像是这样:

is:open AND is:pr AND review-requested:ElectricRCAircraftGuy 
AND archived:false AND (author:my-teammate-1 OR 
author:my-teammate-2 OR author:my-teammate-3)


...这仍然不能满足我想要的控制水平,但至少是更理想的行为。

参考文献:


另请参阅此处的更长的答案:https://stackoverflow.com/questions/29136057/can-i-search-github-labels -with-logical-operator-or / 61618255#61618255

https://github.com/isaacs/github/issues/660