나는 이것을 커피 테이블 대화에서 들었으며 나는 이것이 무엇인지 대략 짐작할 수 없었다. 인터넷 검색의 비트는 유용한 아무것도 던지지 않았다. ..."술어 기반 검색"이란 무엇입니까?
설명 : 처음에 가져가 주셔서 감사합니다 ...하지만 대화가 데이터베이스/인터넷 등을 통해 "검색"하는 것으로 나타났습니다.
나는 이것을 커피 테이블 대화에서 들었으며 나는 이것이 무엇인지 대략 짐작할 수 없었다. 인터넷 검색의 비트는 유용한 아무것도 던지지 않았다. ..."술어 기반 검색"이란 무엇입니까?
설명 : 처음에 가져가 주셔서 감사합니다 ...하지만 대화가 데이터베이스/인터넷 등을 통해 "검색"하는 것으로 나타났습니다.
곳곳에 샤드가있는 널리 분산 된 데이터베이스의 cqse에서 색인을 사용하는 전통적인 검색 패턴이 무너집니다. 이러한 데이터베이스의 경우 종종 map-reduce 작업이 수행됩니다. 맵핑은 명시 적으로 일치하는 레코드를 결과에 필요한 것과 맵핑하는 전달 (sharding) 및 술어에 의해 내재적으로 결정됩니다. 축소 단계에서 필요한 집계가 완료됩니다.
아마도 커피 테이블 토론의 맥락에 맞을까요?
그들이 .NET에 관해 이야기하고 있다면 많은 컬렉션 확장 방법에서 요구되는 Predicate 유형을 언급하고있었습니다.
기준 집합을 정의하고 지정된 개체가 이러한 조건을 충족하는지 여부를 결정하는 메서드를 나타내는 대리자입니다.
다른 플랫폼에서이 용어를 사용하는지 잘 모르겠습니다. 전체 용어는 특별한 의미가있는 경우
//selects items in list where the `ID` property matches `id`
List.Select(x => x.ID == id);
나는 모른다, 그러나 넓은 의미에서 "조건"이 입력으로 엔티티 (후보 객체, 즉 어떤 종류)를받는 함수입니다, 술어 조건이 충족되었는지 여부를 나타내는 부울을 리턴합니다.
이렇게 확장하면 술어 기반 검색은 술어를 기반으로 검색하는 것 (필터라고도하는 것)이라고 결론을 내릴 수 있습니다. 예를 들어, 두 가지 간단한 조건 함께 AND 연산하여 검색을 만들 수있다,이 의사는 내가 이것을 유지하고있어 같은 특정 구문이 아니라고
IsUppercaseString
및 StringStartsWith("S")
말 언어 무신론자 일반적으로는 조건는 인수에 대한 몇 가지 문이 참인지 거짓인지를 나타내는 하나 개 이상의 인수를하고 부울 값을 반환하는 함수입니다.
자연어 술어의 예로는 "파란색", "2 미터 이상", "MC Hammer 소유", "지하"등이 있습니다.
파일 시스템, 데이터베이스 테이블, 그래프와 같은 일부 시스템에서 검색을 실행할 때 시스템 자체가 특정 내장 검색을 제공 할 수 있습니다 (파일 시스템은 파일 이름으로 내장 검색을 가질 수 있습니다 그래프는 주어진 노드로부터의 거리에 의한 내장 검색을 가질 수있다); 또는 더 많은 유연성을 위해 사용자 정의 술어 기능을 제공하여 검색 할 수있는 방법이있을 수 있습니다.
세부 사항에 따라이 사용자 지정 조건부 함수는 표현식 트리 나 실제 실행 코드에 대한 포인터 또는 구문 분석 될 쿼리 식으로 전달 될 수 있습니다. 필요한 것은 시스템에 각 후보 항목에 대한 술어를 호출 할 수있는 방법이 있다는 것입니다. 술어가 각 후보 항목에 대해 참 또는 거짓을 리턴 함을 나타냅니다.
그러면 검색 결과는 사용자 지정 조건자가 true를 반환하는 항목입니다.
자세한 답변을 주신 AakashM에게 감사드립니다. 매우 이해가되었지만, 이해하려고 노력한 내용에 "적합"하다고 생각하지 않습니다 ... 그럼에도 불구하고 다시 한 번 감사드립니다! – Dave
안녕 피터! 그것은 의미가있는 것처럼 보입니다 - 데이터베이스/검색 등에 대한 토론이있었습니다! 도와 줘서 고마워요. 이제는 멍청이가 덜합니다! ;) – Dave