Refactoring the search module...

Shad Laws <shad-xpYdmXCiSuZWk0Htik3J/[email protected]> Sun, 30 Jun 2013 08:47:11 +0200
Newsgroups gmane.comp.web.gallery.devel
Message-ID <CA+z51A7LcRv_es_s50AW2LBOSASW4qHCj5Wv9wiz55=hoDW_=w@mail.gmail.com>
SGV5IGV2ZXJ5b25lLAoKSW4gdGhlIHByb2Nlc3Mgb2YgYmVlZmluZy11cCBHMy4xJ3MgcmVzdCBt
b2R1bGUsIEkgYWRkZWQgYSBzZWFyY2ggUkVTVApyZXNvdXJjZS4gIEluIHRoZSBwcm9jZXNzLCBJ
IHN0YXJ0ZWQgbG9va2luZyBtb3JlIGNsb3NlbHkgYXQgdGhlCnNlYXJjaCBtb2R1bGUsIGFuZCBo
YWQgc29tZSB0aG91Z2h0cy4gIE5vdGFibHksIEknZCBsaWtlIHRvIGNoYW5nZSBob3cKU2VhcmNo
OjphZGRfcXVlcnlfdGVybXMoKSB3b3Jrcy4KClN1bW1hcnk6IEluIDMuMC54LCB3ZSB1c2UgU2Vh
cmNoOjphZGRfcXVlcnlfdGVybXMoKSB0byBhZGQgd2lsZGNhcmRlZAp0ZXJtcyB0byB0aGUgc2Vh
cmNoLiAgRXhhbXBsZTogYSBzZWFyY2ggb2YgImZvbyBiYXJzIiBiZWNvbWVzICJmb28KYmFycyBm
b28qIGJhcioiIGFmdGVyIFNlYXJjaDo6YWRkX3F1ZXJ5X3Rlcm1zKCkuICBJIGJlbGlldmUgdGhl
CnBoaWxvc29waHkgaGVyZSBpcyB0aGlzOiAic2VhcmNoIGZvciBhIG1vcmUgZ2VuZXJpYyB0ZXJt
LCBidXQgcHV0CmV4YWN0IG1hdGNoZXMgZmlyc3QuIiAgSW4gZ2VuZXJhbCwgSSBsaWtlIHRoaXMg
cGhpbG9zb3BoeSwgYnV0IEknbSBub3QKZW50aXJlbHkgc3VyZSB3ZSd2ZSBpbXBsZW1lbnRlZCBp
dCB0aGUgYmVzdCB3YXkuICBTbywgSSBoYXZlIGEgbmV3CnByb3Bvc2FsIHRoYXQgSSB0aGluayBp
cyBib3RoIHNpbXBsZXIgYW5kIG1vcmUgcHJlZGljdGFibGUuCgotLQoKRmlyc3QgdGhvdWdodDog
c2VhcmNoIHdhcyB3cml0dGVuIHdpdGggYSBidW5jaCBvZiBoYW5kLWNvZGVkIE15U1FMCnF1ZXJp
ZXMsIHdoaWNoIHNlZW1zIGxlc3MgdGhhbiBpZGVhbC4gIEluIHBhcnRpY3VsYXIsIHRoaXMgcmVj
ZW50bHkKbGVkIHRvIGEgYnVnIGJlY2F1c2Ugd2UgZGlkbid0IGNvdW50IHdoaXRlc3BhY2UgY2Fy
ZWZ1bGx5IGVub3VnaC4gIFRvCmJlIGZhaXIsIGl0J3MgaW4gcGFydCBiZWNhdXNlIGl0J3Mga2lu
ZGEgaGFyZCB3aGVuIGFsbCB0aGUgc2VnbWVudHMKYXJlIGhhbmQtY29kZWQuICBTaW5jZSBHYWxs
ZXJ5IHNpdHMgYXRvcCBLb2hhbmEncyBzdGFjayBvZiBPTyB0b29scyB0bwpkbyB0aGUgZGlydHkg
d29yayBmb3IgdXMsIEkgcmVmYWN0b3JlZCBpdCB0byB1c2UgdGhlbS4gIFZvaWzDoCAtIG5vCm1v
cmUgY291bnRpbmcgd2hpdGVzcGFjZSA6LSkuCgpUaGlzIGFsc28gZ2F2ZSBtZSBhIGNoYW5jZSB0
byB1bmRlcnN0YW5kICp3aHkqIHdlIGNob3NlIHRvIGJ1aWxkIHRoZQoiZnVsbHRleHQiIHF1ZXJ5
IGFzIHdlIGRvLiAgTWF5YmUgaXQncyBqdXN0IG15IG5hw692ZXTDqSB3aXRoIE15U1FMLCBidXQK
aXQgdG9vayBtZSBxdWl0ZSBhd2hpbGUgdG8gdW5kZXJzdGFuZCB3aHkgd2UgdXNlZCAiSU4gQk9P
TEVBTiBNT0RFIgpmb3Igb25lIHBhcnQgb2YgdGhlIHF1ZXJ5IGJ1dCBub3QgdGhlIG90aGVyLiAg
RmluYWxseSwgSSBnb3QgaXQ6Ci0gImJvb2xlYW4iIG1vZGUgYWxsb3dzIHNwZWNpYWwgb3BlcmF0
b3JzICgrLCAtLCAqLC4uLiksIHNvIGl0J3MgYmVzdApmb3IgKmZpbmRpbmcqIHdoaWNoIGl0ZW1z
IG1hdGNoIHRoZSBzZWFyY2guICBCdXQsIGl0IGRvZXNuJ3QgZ2l2ZSB1cyBhCnVzZWZ1bCBzY29y
ZS4KLSAibmF0dXJhbCBsYW5nYXVnZSIgbW9kZSBnaXZlcyB1cyBhIHVzZWZ1bCBzY29yZSwgc28g
aXQncyBiZXN0IGZvcgoqb3JkZXJpbmcqIHRoZSBmb3VuZCBpdGVtcy4KVGhpcyBhcHByb2FjaCBt
YWtlcyBnb29kIHNlbnNlIHRvIG1lLCBhbmQgSSB0b29rIHRoZSBsaWJlcnR5IG9mIGFkZGluZwpj
b21tZW50cyB0byB0aGUgU2VhcmNoOjpfYnVpbGRfcXVlcnlfYmFzZSgpIHNvIHRoZSBuZXh0IG5l
d2JpZSBkb2Vzbid0CmhhdmUgdG8gcG91ciB0aHJvdWdoIE9yYWNsZSBkb2NzIGxpa2UgSSBkaWQg
dG8gZmlndXJlIHRoaXMgb3V0IDotKS4KClNvLCBvbnRvIFNlYXJjaDo6YWRkX3F1ZXJ5X3Rlcm1z
KCkuICBIZXJlJ3MgaG93IDMuMC54IGRvZXMgaXQ6Ci0gdXNlciBzZWFyY2ggYm94IC0gZm9vIGJh
cnMKLSBuYXR1cmFsIGxhbmd1YWdlIC0gZm9vIGJhcnMgZm9vKiBiYXIqCi0gYm9vbGVhbiBtb2Rl
IC0gZm9vIGJhcnMgZm9vKiBiYXIqCgpOb3RlczoKLSBpdCBtYWtlcyBubyBzZW5zZSB0byBzZW5k
IHdpbGRjYXJkcyB0byBhIG5hdHVyYWwgbGFuZ3VhZ2UgcXVlcnkgYXMKdGhleSdyZSBpZ25vcmVk
LiAgVGhlIHJlc3VsdCBpcyBhIHF1ZXJ5IG9mICJmb28gYmFycyBmb28gYmFyIiwgd2hpY2gKb2Rk
bHkgZG91YmxlcyBmb28uCi0gaXQgbWFrZXMgbm8gc2Vuc2UgdG8gc2VuZCAiZm9vIGZvbyoiIHRv
IGEgYm9vbGVhbiBxdWVyeSBhcyB0aGV5J3JlIHRoZSBzYW1lLgoKQW5vdGhlciBleGFtcGxlIGZv
ciAzLjAueCwgd2hpY2ggaWxsdXN0cmF0ZXMgaG93IHBsdXJhbHMgYXJlIGhhbmRsZWQ6Ci0gdXNl
ciBzZWFyY2ggYm94IC0gZW50cnkgYWx1bW51cwotIG5hdHVyYWwgbGFuZ3VhZ2UgLSBlbnRyeSBh
bHVtbnVzIGVudHJ5KiBhbHVtbnUqCi0gYm9vbGVhbiBtb2RlIC0gZW50cnkgYWx1bW51cyBlbnRy
eSogYWx1bW51KgoKQSBtb3JlIG51YW5jZWQgZXhhbXBsZSBmb3IgMy4wLngsIHdoaWNoIGlsbHVz
dHJhdGVzIGhvdyBzcGVjaWFsCm9wZXJhdG9ycyBhcmVuJ3QgY29uc2lkZXJlZCAobm90ZTogU2Vh
cmNoOjphZGRfcXVlcnlfdGVybXMoKSBpbXBvc2VzIGEKNSB0ZXJtIGxpbWl0KQotIHVzZXIgc2Vh
cmNoIGJveCAtICsocmVxdWlyZWQgdGVybXMpIGZvbyBiYXJzCi0gbmF0dXJhbCBsYW5ndWFnZSAt
ICsocmVxdWlyZWQgdGVybXMpIGZvbyBiYXJzIHJlcXVpcmVkKgotIGJvb2xlYW4gbW9kZSAtICso
cmVxdWlyZWQgdGVybXMpIGZvbyBiYXJzIHJlcXVpcmVkKgoKQW5vdGhlciBleGFtcGxlIGZvciAz
LjAueCwgd2hpY2ggaWxsdXN0cmF0ZXMgaG93IHF1b3RlcyBtYWtlIGFkZGluZwpleHRyYSB0ZXJt
cyBhIHBhaW46Ci0gdXNlciBzZWFyY2ggYm94IC0gImV4YWN0IG1hdGNoIG9ubHkiCi0gbmF0dXJh
bCBsYW5ndWFnZSAtICJleGFjdCBtYXRjaCBvbmx5IiBtYXRjaCogb25seSIqCi0gYm9vbGVhbiBt
b2RlIC0gImV4YWN0IG1hdGNoIG9ubHkiIG1hdGNoKiBvbmx5IioKCi0tCgpIZXJlJ3MgbXkgcHJv
cG9zYWw6Ci0gbmF0dXJhbCBsYW5ndWFnZSAtIGV4YWN0IHNhbWUgYXMgdXNlciBzZWFyY2ggYm94
LiAgTXlTUUwgd2lsbAphdXRvbWF0aWNhbGx5IGlnbm9yZSBzcGVjaWFsIG9wZXJhdG9ycy4KLSBi
b29sZWFuIG1vZGUgLSBhZGQgd2lsZGNhcmRzIHRvIGV4aXN0aW5nIHRlcm1zLCBhZGQgbm8gKm5l
dyogdGVybXMuCkFsc28sIHVzZSBJbmZsZWN0b3I6OnNpbmd1bGFyKCkgYW5kIEluZmxlY3Rvcjo6
cGx1cmFsKCkgdG8gZmlndXJlIG91dAp3aWxkY2FyZCBwbGFjZW1lbnQuCgpFeGFtcGxlOgotIHVz
ZXIgc2VhcmNoIGJveCAtIGZvbyBiYXJzIGVudHJ5IGFsdW1udXMgK3JlcXVpcmVkICJleGFjdCBw
aHJhc2UiCi0gbmF0dXJhbCBsYW5ndWFnZSAtIGZvbyBiYXJzIGVudHJ5IGFsdW1udXMgK3JlcXVp
cmVkICJleGFjdCBwaHJhc2UiCltNeVNRTCBzZWVzICJmb28gYmFycyBlbnRyeSBhbHVtbnVzIHJl
cXVpcmVkIGV4YWN0IHBocmFzZSJdCi0gYm9vbGVhbiBtb2RlIC0gZm9vKiBiYXIqIGVudHIqIGFs
dW1uKiArcmVxdWlyZWQqICJleGFjdCBwaHJhc2UiCgpUaGUgcmVzdWx0IGtlZXBzIHRoZSBzYW1l
IHBoaWxvc29waHk6IHNlYXJjaCBmb3IgYSBtb3JlIGdlbmVyaWMgdGVybQooYm9vbGVhbiBtb2Rl
KSwgYnV0IHB1dCBleGFjdCBtYXRjaGVzIGZpcnN0IChuYXR1cmFsIGxhbmd1YWdlIG1vZGUpLgpO
b3RlczoKLSBTaW1wbGVyIGxvZ2ljIHJlbW92ZXMgdGhlIG5lZWQgdG8gZmlndXJlIG91dCBob3cg
dG8gZXh0ZW5kL2xpbWl0CmV4dHJhIHRlcm1zLCBiZSBzbWFydCB3aXRoIHBhcmVudGhlc2VzIGFu
ZCBxdW90ZXMgd2hpbGUgZXh0ZW5kaW5nLApldGMuCi0gVXNlIG9mIEluZmxlY3RvciBjbGFzcyBs
ZXRzIHVzIGJlIG1vcmUgY2xldmVyIHdpdGggaXJyZWd1bGFyIHBsdXJhbHMuCi0gVGhpcyBzdGls
bCBpc24ndCBpMThuIHNhdnZ5LCBidXQgSSBzdXNwZWN0IHRoYXQgdHJ5aW5nIHRvIGJlCmkxOG4t
c2F2dnkgY29tcHJlaGVuc2l2ZWx5IGlzIGEgZGVlcCByYWJiaXQgaG9sZS4KLSBNYXliZSB0byBh
dCBsZWFzdCBiZSBjbGVhciBhYm91dCBvdXIgbGFjayBvZiBpMThuLCB3ZSBzaG91bGQgYWRkIGFu
CmFkbWluIG9wdGlvbiBmb3Igd2lsZGNhcmRpbmcgbW9kZXMuICAoUHJlZml4IG1vZGU6IG5vbmUs
IGFkZCB3aWxkY2FyZDsKc3VmZml4IG1vZGU6IG5vbmUsIGFkZCB3aWxkY2FyZCwgYWRkIHNtYXJ0
IHdpbGRjYXJkIChFbmdsaXNoIG9ubHkpKS4KLSBJZiB3ZSBnbyB0byB0aGUgdHJvdWJsZSBvZiBh
ZGRpbmcgYW4gYWRtaW4gc2NyZWVuLCBtYXliZSBpdCBtYWtlcwpzZW5zZSB0byBmb2xkIGluIG15
IHNob3J0X3NlYXJjaF9maXggbW9kdWxlIChlbmFibGVzIHNlYXJjaCB0ZXJtcyBvZgo8NCBjaGFy
YWN0ZXJzIG9uIHNoYXJlZCBob3N0aW5nIGluc3RhbGxhdGlvbnMpCgpUaG91Z2h0cz8KClRha2Ug
Y2FyZSwKU2hhZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoaXMgU0YubmV0IGVtYWlsIGlzIHNw
b25zb3JlZCBieSBXaW5kb3dzOgoKQnVpbGQgZm9yIFdpbmRvd3MgU3RvcmUuCgpodHRwOi8vcC5z
Zi5uZXQvc2Z1L3dpbmRvd3MtZGV2MmRldgpfX1sgZyBhIGwgbCBlIHIgeSAtIGQgZSB2IGUgbCBd
X19fX19fX19fX19fX19fX19fX19fX19fXwoKWyBsaXN0IGluZm8vYXJjaGl2ZSAtLT4gaHR0cDov
L2dhbGxlcnkuc2YubmV0L2xpc3RzLnBocCBdClsgZ2FsbGVyeSBpbmZvL0ZBUS9kb3dubG9hZCAt
LT4gaHR0cDovL2dhbGxlcnkuc2YubmV0IF0=