Boole araması açıklandı


29

Annem bir tür kütüphaneci olmak için çevrimiçi bir kurs alıyor, bu kursta boolean aramaları kapsıyorlar, böylece veritabanlarını verimli bir şekilde arayabiliyorlar, ancak bunun gibi bir şey soran bir soru var:

"X OR y" araması 105 000 sonuçla sonuçlanırken, yalnızca x araması 80 000 sonuçla sonuçlanır ve yalnızca y araması 35 000 sonuç alır. Kombine bireysel aramalar 115 000 sonuç verdiğinde neden "x OR y" araması 105 000 sonuç veriyor?

Benim için bu garip geliyordu, bu yüzden pastırma ve sandviç kelimelerini kullanarak bunu kendim denedim .

  • Sadece pastırma vermiştir 179 000 000 sonuçlar
  • Sadece sandviç vermiştir 312 000 000 sonuçlar
  • pastırma VEYA sandviç 491 000 000 sonuç verdi

Ama benim için şunu ekler: 179 000 000 (domuz pastırması) + 312 000 000 (sandviç) = 491 000 000 (domuz pastırması VEYA sandviç)

Bir OR sorgusu neden her iki ayrı sorgudan daha az isabetle sonuçlanabilir?


22
Mavi bir köpeğin, mavi kedin ve kırmızı kedin var. (Mavi) SAYISI 2 = (mavi ya da CAT) N (CAT) = 2 fakat SAYISI, 3 değil 4 =
BlueRaja - Danny Pflughoeft

11
Bunu denedim, pastırma için 184 milyon sonuç aldım. Asla sandviç aramaya başlamamıştım çünkü hemen kendime domuz pastırması pişirmeye gittim.
corsiKa

15
Bence asıl sorun veritabanında pastırmalı sandviç olmaması.
MooseBoys

@MooseBoys evet, bu yüzden sayılarımı eklemeliler, çünkü yapmamalılar, değil mi?
sch

3
@klskl: Bu numaraları google’dan alıyorsanız, bu rakamların çok kaba tahminler olduğunu unutmayın. Çok iyi olabilirdi ki, "pastırma VEYA sandviç" için bir tahminde bulunabilmek için, sadece sayıları topladıkları söylenebilir. Bu sadece işe yarıyor çünkü tahminde herhangi bir doğruluk olması gerekmiyor.
BlueRaja - Danny Pflughoeft 15

Yanıtlar:


62

İpucu: x AND y araması 10.000 sonuç verecektir.


evet, ama konunun dışında en, öğretmenler x iddia VEYA y arama sonra tek tek arama x y hit birleştirerek daha az isabet verir
sch

63
Hayır, konunun dışında değil. Aksine, mesele budur.
Yuval Filmus,

Bu konuda yeniyim, detaylandırmak ister misiniz? Anladığım kadarıyla VE her ikisinde de kelimeler olan sonuçları verecek, dolayısıyla her biri ayrı ayrı olan sonuçlardan daha az sonuç verecek, fakat bunun OR ile ne alakası var?
sch

2
AND boş olduğunda VEYA ADD gibi çalışır, aksi halde olmaz. klskl, x AND y bilgisi çok önemlidir.
Evil

@ YuvalFilmus Şimdi görüyorum, mesele o! (Ben gibiydim, hamburger ve sandviç 10.000 vuruş vermedi ...) teşekkür ederim
sch

93

Burada uygulanan sayma ilkesi dahil etme-hariç tutmadır .

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

|XY|

Bir Venn şeması, gösterimle korkutulabilecek birine daha ikna edici olabilir.

Venn şeması


4
Bu gerçekten çok iyi, bunu anneme anlatmak için kullanacak, gerçekten temiz, teşekkürler!
sch

3
|XY|=|X|+|Y|-|XY||XY||X||Y||X|+|Y|
Devsman,

Matematik çalışır ve mantıklıdır, ancak tam üstündeki set cebiriyle eşleşmiyor.
Kevin Brown

4-5 yaşımdayken Venn Şeması yaptığımı hatırlıyorum. Gerçekten küçümserler. Teşekkürler John Venn.
Pharap

1
@Pharap Gerçekten, bu gibi diyagramlar Venn'lerimizi hak ediyor.
Mason Wheeler

13

Belge 1: Kedi masanın üstünde
Belge 2: Kedim siyah
Belge 3: Köpek masanın altında
Belge 4: Kedinizin adı ne?
Belge 5: Bu siyah beyaz bir fotoğraf

Kedi arama : iade edilen belgeler 1,2,4 (3 belge döndü) Siyah
arama : iade edilen belgeler ... Kedi arama VEYA siyah : iade edilen belgeler ...

:-D :-D


3

Basit bir deyişle:

X araması n size cevap verir.
Y kelimesi size cevap verir.
X VE Y yi ara, size p cevabı verir.

X VEYA'yı ararken, X veya Y'yi bulur bulmaz arama kopar. Yani bir Y'den önce bir X varsa, X veya Y'yi ararken Y sayılmaz. Bu nedenle X VE Y için yaptığınız arama size n + m - p cevapları verecek.

2 arama yapsanız da, sadece bir tanesinde, sonuçların aynı olacağını not etmek önemlidir. Sadece iki arama toplanırken, bazı dokümanlar iki defa sayılır.


"X veya Y'yi bulur bulmaz arama kopar." Bu uygulamaya bağlı değil mi? Bir uygulama, X için tüm sonuçları elde edebilir, Y için tüm sonuçları elde edebilir ve ardından sonuçları yinelemeleri ortadan kaldıracak şekilde birleştirebilir.
jpmc26

@ArnabDatta Açıkladığım şey kesinlikle bir XOR değil. "Çoğaltmaları ortadan kaldırmak", bu öğenin tüm örneklerini değil, ikinci kopyayı ortadan kaldırmak anlamına gelir.
jpmc26

Doğru. Yanlış anlamışım. Yorumumu kaldırdım.
Arnab Datta

3

Sadece bir dokümanınız olduğunu hayal edin. Bu, şununla Belge 1'dir:

X Y

Şimdi size tüm belgeleri tek bir anahtar kelimeye göre verebilecek bir arama fonksiyonuna sahip olduğunuzu hayal edin:

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

Her iki durumda da belge sayısının 1 olduğunu unutmayın. Şimdi size verilen anahtar kelimelerden bir veya daha fazlasına uyan belge sayısını veren bir arama işleviniz varsa:

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

Eğer içeren belgelerin numarası eklediğinizde Xiçeren belgelerin sayısı Y, bu iki kez aynı belgeyi saymak neden olur. Senin durumunda bu, 10000yukarıda da belirtildiği gibi oldu :)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.