부울 검색 설명 결합 된 개별 검색이 115 000 개의

어머니는 일종의 사서가되기 위해 온라인 과정을 밟고 있습니다.이 과정에서 부울 검색을 다루므로 데이터베이스를 효율적으로 검색 할 수 있지만 다음과 같은 소리가납니다.

“x OR y”를 검색하면 105 000 개의 적중이 발생하지만 x 만 검색하면 80 000 개의 적중이 발생하고 y 만 검색하면 35,000 개의 적중이 발생합니다. 결합 된 개별 검색이 115 000 개의 조회를 제공 할 때 검색 “x OR y”가 105 000 개의 조회를 제공하는 이유는 무엇입니까?

나에게 이것은 이상하게 들렸으므로 베이컨샌드위치 라는 단어를 사용하여 직접 테스트했습니다 .

  • 베이컨 만이 1 억 7 천만 개의 결과를 산출했습니다
  • 샌드위치 굴복 312 개 000 000 결과를
  • 베이컨 OR 샌드위치491 000 000 결과를 주었다

그러나 나를 위해 합산하면 : 179 000 000 (베이컨) + 3 억 3, 000 000 (샌드위치) = 491 000 000 (베이컨 OR 샌드위치)

OR 쿼리로 인해 두 개별 쿼리를 합친 것보다 적중 횟수가 더 적은 이유는 무엇입니까?



답변

힌트 : 검색 x AND y는 10 000 개의 적중을 초래합니다.


답변

여기에 적용되는 계산 원리는 포함 제외 입니다.

|XY|=|X|+|Y||XY|

|XY|

벤 다이어그램은 표기법에 의해 협박을받을 수있는 사람에게 더 설득력이있을 수 있습니다.

벤 다이어그램


답변

문서 1 : 고양이가 책상 위에 있습니다.
문서 2 : 고양이가 검은 색입니다.
문서 3 : 개가 책상 아래에 있습니다.
문서 4 : 고양이 이름이 무엇입니까?
문서 5 : 이것은 흑백 사진입니다

고양이 검색 : 반환 된 문서는 1,2,4 (3 개 문서 반환) 검정
검색 : 반환 된 문서는 … 고양이
검색 또는 검은 색 : 반환 된 문서는 …

😀 😀


답변

간단히 말해서 :

X를 검색하면 n 개의 답변이 제공됩니다.
Y를 검색하면 답을 얻을 수 있습니다.
X와 Y를 검색하면 p 답변이 제공됩니다.

X OR Y를 검색 할 때 X 또는 Y를 찾 자마자 검색이 중단됩니다. 따라서 Y 앞에 X가 있으면 X 또는 Y를 검색 할 때 해당 Y가 계산되지 않습니다. 따라서 X OR Y를 검색하면 당신에게 n + m-p 답변을 줄 것입니다.

두 번의 검색을 수행하든 한 번만 수행하든 결과는 동일하다는 점에 유의해야합니다. 두 검색을 합산 할 때 일부 문서는 두 번 계산됩니다.


답변

하나의 문서 만 있다고 상상해보십시오. 이것은 다음과 같은 문서 # 1입니다.

X Y

이제 하나의 키워드를 기반으로 모든 문서를 제공 할 수있는 검색 기능이 있다고 가정하십시오.

search("X") => 1
search("Y") => 1

두 경우 모두 문서 수는 1입니다. 이제 제공된 키워드 중 하나 이상과 일치하는 문서 수를 제공하는 검색 기능이있는 경우 :

search("X", "Y") => 1

를 포함 X하는 문서 수에 포함 된 문서 수를 추가 Y하면 동일한 문서를 두 번 계산합니다. 귀하의 경우, 10000위에서 지적한 시간 이 발생 했습니다. 🙂


답변