Language agnostic “a”是什么;基于谓词的搜索“;?

Language agnostic “a”是什么;基于谓词的搜索“;?,language-agnostic,search,Language Agnostic,Search,我在咖啡桌上无意中听到了这段对话,我无法理解这是怎么回事。一点谷歌搜索并没有带来任何有用的东西 澄清:感谢大家对它的初步了解。。。但对话似乎是关于通过数据库/互联网等进行“搜索”…如果他们谈论的是.NET,那么他们指的是许多集合扩展方法所需的类型 它是一个委托,表示定义一组条件并确定指定对象是否满足这些条件的方法 我不确定其他平台是否使用这个术语 //selects items in list where the `ID` property matches `id` List.Select(x

我在咖啡桌上无意中听到了这段对话,我无法理解这是怎么回事。一点谷歌搜索并没有带来任何有用的东西


澄清:感谢大家对它的初步了解。。。但对话似乎是关于通过数据库/互联网等进行“搜索”…

如果他们谈论的是.NET,那么他们指的是许多集合扩展方法所需的类型

它是一个委托,表示定义一组条件并确定指定对象是否满足这些条件的方法

我不确定其他平台是否使用这个术语

//selects items in list where the `ID` property matches `id`
List.Select(x => x.ID == id); 

我不知道这个词作为一个整体是否有任何特殊的含义,但从更广泛的意义上说,“谓词”是一个函数,它以实体(即某种候选对象)作为输入,并返回一个布尔值,指示是否满足谓词条件

由此展开,我们可能会得出这样的结论:基于谓词的搜索是基于谓词的搜索——我们可以称之为过滤器。例如,您可以通过将两个简单谓词(例如
IsUppercaseString
StringStartsWith(“S”)
*)并用以搜索以S开头的大写字符串来构建搜索

  • 请注意,这是伪代码,不是任何特定的语法,因为我保持这种语言的不可知性

一般来说,谓词是一个函数,它接受一个或多个参数,并返回一个布尔值,指示有关参数的某些语句是真还是假

自然语言谓词的示例可能是“is blue”、“长度超过两米”、“归MC Hammer所有”、“is underground”

在某些系统上执行搜索时(例如文件系统、数据库表、图形),可能是系统本身提供了某些内置搜索(文件系统可能通过文件名进行内置搜索;图形可能通过与给定节点的距离进行内置搜索);或者,为了获得更大的灵活性,可以通过提供自定义谓词函数来进行搜索

根据具体情况,此自定义谓词函数可以作为表达式树、指向某些实际可执行代码的指针或要解析的查询表达式传递。所需要的只是系统有某种方式来调用每个候选项上的谓词;谓词为每个候选项返回true或false


然后,搜索结果就是那些自定义谓词返回true的项。

在分布广泛、到处都是碎片的数据库的cqse中,使用索引等的传统搜索模式被打破。对于这些数据库,通常会执行map reduce操作。映射由切分和传递的谓词隐式确定,该谓词将匹配谓词的记录映射到结果所需的任何内容。在reduce步骤中,完成了必要的聚合等


也许这符合茶几讨论的背景?

嗨,彼得!这似乎是有道理的-有关于数据库/搜索等的讨论!谢谢你的帮助——我现在感觉不那么傻了!;)感谢阿卡什姆的详细回答——这是相当解释性的,但我认为它与我试图理解的内容不“相符”。。。不过,再次感谢!