advanced search页面的url:
https://github.com/search/advanced
搜索结果页面的url:
https://github.com/search?q=ddd&type=repositories
搜索结果页面的url有两个参数:
q参数,代表查询条件
type参数,代表查询类别,可选项是code、repositories、issues等,只能选一个。
参数q里是查询条件,包含各个查询条件,查询条件又分两类:搜索关键字和过滤条件。
搜索关键字就是单个了字符串;过滤条件项就是过滤条件名,过滤操作符,过滤关键字,
比如:created:>2022-11-15。
关键点在于:
查询条件中的各个过滤条件不是所有的查询类别都支持。
查询条件中的搜索关键字可以有多个,以空格隔开。
查询条件中的搜索关键字对不同的查询类别作用的对象是不同的,
比如:code类别里,查询关键字作用于文件的内容。
repositories类别里,查询关键字作用于库的名字,库的read me。
如果过滤条件当前查询类别不支持,则会被当成查询关键字,这就会产生让人想不到的问题了。
比如在code查询类别时,有过滤条件:created:>1999-11-15,就会把过滤条件created:>1999-11-15
当成搜索关键字,在有关键字“created:>1999-11-15”的代码,就会导致查询结果为空了。
它并不是先按条件过滤github中的项目库后,再在过滤出来的项目库的代码中按查询关键字搜索的。
这下面的文档里,明确的列出各种搜索类型支持的过滤条件:
https://docs.github.com/zh/search-github/searching-on-github/searching-code