2010-06-21 6 views
4

나는 이것을 커피 테이블 대화에서 들었으며 나는 이것이 무엇인지 대략 짐작할 수 없었다. 인터넷 검색의 비트는 유용한 아무것도 던지지 않았다. ..."술어 기반 검색"이란 무엇입니까?

설명 : 처음에 가져가 주셔서 감사합니다 ...하지만 대화가 데이터베이스/인터넷 등을 통해 "검색"하는 것으로 나타났습니다.

답변

1

곳곳에 샤드가있는 널리 분산 된 데이터베이스의 cqse에서 색인을 사용하는 전통적인 검색 패턴이 무너집니다. 이러한 데이터베이스의 경우 종종 map-reduce 작업이 수행됩니다. 맵핑은 명시 적으로 일치하는 레코드를 결과에 필요한 것과 맵핑하는 전달 (sharding) 및 술어에 의해 내재적으로 결정됩니다. 축소 단계에서 필요한 집계가 완료됩니다.

아마도 커피 테이블 토론의 맥락에 맞을까요?

+0

안녕 피터! 그것은 의미가있는 것처럼 보입니다 - 데이터베이스/검색 등에 대한 토론이있었습니다! 도와 줘서 고마워요. 이제는 멍청이가 덜합니다! ;) – Dave

1

그들이 .NET에 관해 이야기하고 있다면 많은 컬렉션 확장 방법에서 요구되는 Predicate 유형을 언급하고있었습니다.

기준 집합을 정의하고 지정된 개체가 이러한 조건을 충족하는지 여부를 결정하는 메서드를 나타내는 대리자입니다.

다른 플랫폼에서이 용어를 사용하는지 잘 모르겠습니다. 전체 용어는 특별한 의미가있는 경우

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

나는 모른다, 그러나 넓은 의미에서 "조건"이 입력으로 엔티티 (후보 객체, 즉 어떤 종류)를받는 함수입니다, 술어 조건이 충족되었는지 여부를 나타내는 부울을 리턴합니다.

이렇게 확장하면 술어 기반 검색은 술어를 기반으로 검색하는 것 (필터라고도하는 것)이라고 결론을 내릴 수 있습니다. 예를 들어, 두 가지 간단한 조건 함께 AND 연산하여 검색을 만들 수있다,이 의사는 내가 이것을 유지하고있어 같은 특정 구문이 아니라고

  • 주 S.로 시작하는 대문자 문자열을 검색 할 * IsUppercaseStringStringStartsWith("S") 말 언어 무신론자 일반적으로
9

조건는 인수에 대한 몇 가지 문이 참인지 거짓인지를 나타내는 하나 개 이상의 인수를하고 부울 값을 반환하는 함수입니다.

자연어 술어의 예로는 "파란색", "2 미터 이상", "MC Hammer 소유", "지하"등이 있습니다.

파일 시스템, 데이터베이스 테이블, 그래프와 같은 일부 시스템에서 검색을 실행할 때 시스템 자체가 특정 내장 검색을 제공 할 수 있습니다 (파일 시스템은 파일 이름으로 내장 검색을 가질 수 있습니다 그래프는 주어진 노드로부터의 거리에 의한 내장 검색을 가질 수있다); 또는 더 많은 유연성을 위해 사용자 정의 술어 기능을 제공하여 검색 할 수있는 방법이있을 수 있습니다.

세부 사항에 따라이 사용자 지정 조건부 함수는 표현식 트리 나 실제 실행 코드에 대한 포인터 또는 구문 분석 될 쿼리 식으로 전달 될 수 있습니다. 필요한 것은 시스템에 각 후보 항목에 대한 술어를 호출 할 수있는 방법이 있다는 것입니다. 술어가 각 후보 항목에 대해 참 또는 거짓을 리턴 함을 나타냅니다.

그러면 검색 결과는 사용자 지정 조건자가 true를 반환하는 항목입니다.

+0

자세한 답변을 주신 AakashM에게 감사드립니다. 매우 이해가되었지만, 이해하려고 노력한 내용에 "적합"하다고 생각하지 않습니다 ... 그럼에도 불구하고 다시 한 번 감사드립니다! – Dave