2014-03-28 4 views
2

프로그래밍 언어 또는 집합의 종류와 독립적으로 집합에 대한 쿼리를 정의하는 방법을 찾고 있습니다. 이것은 언어의 정의 등 자바, C++, 파이썬에는 프로그래밍 언어와 독립적 인 임의의 집합에 대한 일반 쿼리 언어가 있습니까?

으로 나는 데이터베이스 또는 세트 - 표현의 구현을 찾고 있지이야 주석하지만 같은 일반적인 언어에 대한 구현을 것이다 구체적으로

에 대한 유일한 방법은의 요소에 대한 쿼리를 정의합니다. std::set/vector 파이썬 set() 또는 세트로 볼 수있는 선형 구조.

닫기 예제는 jLinq과 비슷하지만 JSON 또는 javascript와 잘 정의 된 문자열 표현에 묶이지 않아도됩니다.

데이터 구조의 종류를 알지 못해도 모든 문제와 모든 프로그래밍 언어에 대한 조건부 필터를 구현해야하지만 물론 쿼리 문자열을 구성하는 방법과이를 평가하는 방법이 분명하고 사용자가 파서를 작성하십시오. - 단지 무엇을 보여

"(created_after("14.03.2010") and (contains("hello") or contains("hallo"))) sort("caption")" 

(이은을 통해 생각되지 않습니다

그래서 내가 Java 또는 C++로 작성하고 싶은 것을

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

같은 또는 문자열로 기록이다 인터페이스는 다음과 같을 수 있습니다.

다른 문제에 대한 좋은 예로는 JSON 또는 XML이 있습니다. 모든 플랫폼 또는 프로그래밍 언어에 대한 명확한 언어 정의 및 파서/도구입니다.

+0

그래서 데이터베이스가 있습니까? 말 그대로 10 억 달러 규모의 업계와이 문제의 많은 변형을 해결하는 몇 가지 주요 오픈 소스 프로젝트가 있습니다. – delnan

+0

아니요, 데이터베이스가 아니라 테이블 및 필드가있는 데이터베이스가 아닌 일반 집합에 대한 표준 쿼리 언어를 찾고 있습니다. – frans

+0

이러한 테이블 집합을 테이블로 모델링하고 SQL 쿼리를 작성할 수없는 이유는 무엇입니까? – delnan

답변

1

나는이 질문이 오래된 것을 알고 있지만, 나는 당신이 의미하는 바를 알고 있다고 생각하며 실제로 비슷한 것을 찾고 있었다. 필요한 것은 "검색 쿼리 파서"입니다.

나는 nodejs에 대해 search-query-parser을 발견했습니다 (저자가 아님). 아직 그것을 시도하지만, 아주 illustraring 된 문서에 promising.The 예를 보이는하지 않은, 당신은 UI

from:[email protected],[email protected] to:me subject:vacations date:1/10/2013-15/04/2014 photos 

에서 입력 문자열을받을 그리고 도서관은 구조화 된 JSON 객체

{ 
    from: ['[email protected]', '[email protected]'], 
    to: 'me', 
    subject: 'vacations', 
    date: { 
    from: '1/10/2013', 
    to: '15/04/2014' 
    }, 
    text: 'photos' 
} 
에 구문 분석

그리고 그 객체에서 당신은 당신의 데이터베이스에 질의 명령을 생성하고 실행할 수 있습니다. 보시다시피 목록과 범위를 처리합니다. 지금 당장 부울 연산자 (AND, OR)를 볼 수 없지만 쉽게 구현 될 수 있다고 생각합니다.

희망이 도움이됩니다.