gpt4 book ai didi

set - 是否有独立于编程语言的任意集合的通用查询语言?

转载 作者:行者123 更新时间:2023-12-01 05:13:28 24 4
gpt4 key购买 nike

我正在寻找一种独立于编程语言或集合类型来定义集合查询的方法。

详细地说,这将是通用语言(如 Java、C++、Python 等)的语言定义和实现。

正如评论的那样,我不是在寻找数据库或任何集合表示的实现,而只是一种定义查询元素的方法,例如一个 std::set/vector一个 Python set()或任何可以看作一个集合的线性结构。

一个类似的例子是 jLinq但不依赖于 JSON 或 javascript 并且具有明确定义的字符串表示。

当然,在不知道哪种数据结构的情况下,您必须为每个问题和每种编程语言实现任何条件过滤器,但是构造查询字符串的方式以及评估它们的方式将很清楚,您不必编写解析器。

所以我想用 Java 或 C++ 写的是

q = query()
.created_after("14.03.2010")
.and(contains("hello")
.or(contains("hallo")))
.sort("caption")

或写成字符串:
"(created_after("14.03.2010") and ( contains("hello") or contains("hallo"))) sort("caption")"

(这没有经过深思熟虑 - 只是为了展示界面的外观)

另一个问题的一个很好的例子是 JSON 或 XML:任何平台或编程语言的清晰语言定义和解析器/工具。

最佳答案

我知道这是一个老问题,但我想我知道你的意思,我实际上在寻找类似的东西。您需要的是“搜索查询解析器”。
我找到了search-query-parser对于nodejs(我不是作者)。还没有尝试过,但看起来很有希望。文档中的示例非常说明,您将收到来自 UI 的输入字符串

from:hi@retrace.io,foo@gmail.com to:me subject:vacations date:1/10/2013-15/04/2014 photos
该库会将其解析为结构化的 json 对象
{
from: ['hi@retrace.io', 'foo@gmail.com'],
to: 'me',
subject: 'vacations',
date: {
from: '1/10/2013',
to: '15/04/2014'
},
text: 'photos'
}
您可以从该对象构造并向数据库发出查询命令。如您所见,它处理列表和范围。我马上看不到任何 bool 运算符(AND,OR),但我想可以很容易地实现。
希望这可以帮助。

关于set - 是否有独立于编程语言的任意集合的通用查询语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22715170/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com