рдЕрдВрдд рдореЗрдВ рдореИрдВ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐
рдкрд╣рд▓реЗ рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдХреНрдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рдпрдерди (рд╕рд╛рдЗрдерди рдЖрд╡реЗрд╖рдг рдХреЗ рд╕рд╛рде) рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред рдЫрд╡рд┐рдпреЛрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИред
рд╕реНрдлрд┐рдВрдХреНрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЦреЛрдЬ (рдореБрдЦреНрдп) рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореБрд╡рдХреНрдХрд┐рд▓
txsphinx рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯред
"рдкрд╕рдВрдж" рдХреЗ рд▓рд┐рдП, рдЫрд╡рд┐ рдХреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рд░реЗрдбрд┐рд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реЗрдбрд┐рд╕ рд╢реАрд░реНрд╖ рдЫрд╡рд┐рдпрд╛рдВ (рдореБрдЦреНрдп рдкреГрд╖реНрда) рдФрд░ "рд╕рдорд╛рди рдЪрд┐рддреНрд░" (рд╕реНрд╡рдпрдВ рдЫрд╡рд┐ рдХрд╛ рдкреГрд╖реНрда) рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред рдореБрдбрд╝ рдЧреНрд░рд╛рд╣рдХ txredis рдХреЗ рд▓рд┐рдП, рд╡рд┐рд╢рд╛рд▓ рдФрд░ рдереЛрдбрд╝рд╛ рдЦреБрдж рдХреЗ рд▓рд┐рдП рд╕рдВрд╢реЛрдзрд┐рдд (рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЕрднреА рддрдХ рдирд╣реАрдВ) рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ред
рд╡реЗрдм: TwistedWeb Jinja2 рдЯреЗрдореНрдкрд▓реЗрдЯ рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ Bootsrap рдФрд░ Jquery рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХрд╛ рдЕрдВрдд рдирдЧреНрдиреЗрдХреНрд╕ рд╣реИред
рджрд┐рд▓рдЪрд╕реНрдк рд╣рд┐рд╕реНрд╕рд╛:
рдкрд╣рд▓реА (рдФрд░ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк) рдмрд╛рдд рдПрдХ рдЗрдореЗрдЬ
рдлрд┐рд▓реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рдереАред рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝реАрд▓реНрдб рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдИ рдЧрдИ рдереА:
- рд╢реНрд░реЗрдгреА
- рдиреНрдпреВрдирддрдо рдЫрд╡рд┐ рд╕рдВрдХрд▓реНрдк
- рдХреАрд╡рд░реНрдб
- рд░рдВрдЧ
рд╕реНрдлрд┐рдВрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд┐рд▓реНрдЯрд░ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрдиреБрдХреНрд░рдордг xmlpipe рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рд╕реНрдлрд┐рдВрдХреНрд╕ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ:
source images { type = xmlpipe2 xmlpipe_command = bin/sphinx.py --indexer=images } index images { source = images path = /var/lib/sphinx/data/images morphology = stem_enru charset_type = utf-8 min_word_len = 2 min_infix_len = 3 enable_star = 1 docinfo = extern html_strip = 1 index_exact_words = 1 expand_keywords = 0 wordforms = images_wordforms.txt }
рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ: MVA рд╡рд┐рд╢реЗрд╖рддрд╛, рд╕реВрдЪреА IDред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрд╛рда рд╡рд┐рд╢реЗрд╖рддрд╛ рд╢реНрд░реЗрдгреА рдирд╛рдореЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ (рд╕рд╣реА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рдгрд╛рдореЛрдВ рдореЗрдВ рд╡рдЬрди рдЬреЛрдбрд╝рдХрд░)ред
рдиреНрдпреВрдирддрдо рдЫрд╡рд┐ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди: рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
рдЪреМрдбрд╝рд╛рдИ рдФрд░
рдКрдБрдЪрд╛рдИ ред рдпрд╣рд╛рдВ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рднреА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреА рд╕реАрдорд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╕реЗрдЯ рд╕реЗ рдЕрдзрд┐рдХрддрдо (рдЬрд╛рджреВ рдХреА рд╕рдВрдЦреНрдпрд╛ 10000) рддрдХред
рдХреАрд╡рд░реНрдб: рддреАрди рдкрд╛рда рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
рд╢реАрд░реНрд╖рдХ рдЯреИрдЧ рдХреАрд╡рд░реНрдб ред рд╢реАрд░реНрд╖рдХ - рдЫрд╡рд┐ рдХрд╛ рд╢реАрд░реНрд╖рдХ, рдкрд░рд┐рдгрд╛рдо рд╣рд┐рдЯ рд╣реЛрдиреЗ рдкрд░ рдЕрдзрд┐рдХрддрдо рднрд╛рд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯреИрдЧ - рдЫрд╡рд┐ рдЯреИрдЧ рдХреА рд╕реВрдЪреА, рдФрд╕рдд рд╡рдЬрдиред рдХреАрд╡рд░реНрдб - рдХреАрд╡рд░реНрдб рдХрд╛ рдПрдХ рд╕реЗрдЯ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рд╣реИ), рдЫрд╡рд┐ рдкреГрд╖реНрда рдкрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдХрдЪрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рд▓реНрдХреЗ рд╡рдЬрдиред
рд░рдВрдЧ: рдпрд╣ рд╕рдмрд╕реЗ рдХрдард┐рди рдерд╛, рдореИрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдКрдВрдЧрд╛ред рдПрдХ рд░рдВрдЧ рдкреИрд▓реЗрдЯ {ID => RGB} рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рд╣рдо рдкреНрд░рдореБрдЦ рд░рдВрдЧреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдорд╛рд░реЗ рдкреИрд▓реЗрдЯ рдореЗрдВ рд╕рдорд╛рди рдХрд░рддреЗ рд╣реИрдВред рдЫрд╡рд┐ рд░рдВрдЧ рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рджреЛ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ: рд░рдВрдЧ рдЖрдИрдбреА рдФрд░ рдЫрд╡рд┐ рдкрд░ рдХрдмреНрдЬрд╛ рдкреНрд░рддрд┐рд╢рддред рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ "рдПрдо_рдПрдХреНрд╕" рдХреЗ рджрд╕ рдПрдорд╡реАрдП рдЧреБрдг рд╣реИрдВ, рдЬрд╣рд╛рдВ рдПрдХреНрд╕ 0 рд╕реЗ 9 рддрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЫрд╡рд┐ рдХреЗ рд╕рднреА рд░рдВрдЧ c_0 рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, c_1 рд╕реЗ рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рд╛рде рд░рдВрдЧ = = 10, рдкреНрд░рддрд┐рд╢рдд рдХреЗ рд╕рд╛рде c_2 рдореЗрдВ рд░рдВрдЧ> = 20, рдЖрджрд┐ред
рд░рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ: рдЬрдм рд░рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЫрд╡рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ рд╕рднреА рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рд╕реВрдЪрдХрд╛рдВрдХ c_1 рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддрдм рд░рдВрдЧ рдХрд╛ рд╡рдЬрди рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдИрдбреА 2 (рдЫрджреНрдо-рдХреЛрдб) рдХреЗ рд╕рд╛рде рд░рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп:
setSelect('(IN(c_1,2)*1) + (IN(c_2,2)*1) + (IN(c_3,2)*1) + (IN(c_4,2)*1) + (IN(c_5,2)*1) + (IN(c_6,2)*1) + (IN(c_7,2)*1) + (IN(c_8,2)*1) + (IN(c_9,2)*1) AS colors_weight') setOrder('colors_weight DESC')
рд╢рд╛рдпрдж рд░рдВрдЧ рдЦреЛрдЬ рд╕рдмрд╕реЗ рдЗрд╖реНрдЯрддрдо рддрд░реАрдХреЗ рд╕реЗ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдмрд╕реЗ рд╕рдлрд▓ рд╣реИ рдЬреЛ рдореИрдВ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред
рдкрд░рд┐рдгрд╛рдо:
рдлрд╝рд┐рд▓реНрдЯрд░ рдЧрддрд┐ рдореБрдЭреЗ рдЦреБрд╢ рдХрд░рддреА рд╣реИ, рдЕрдм 70-80 рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд▓рдЧрднрдЧ 50-80 рдорд┐рд▓реАрд╕реЗрдХрдВрдб рд╣реИред рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХреБрдЫ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рдкреВрдЫреЗрдВ, рдореБрдЭреЗ рдЖрдкрдХреЛ рдмрддрд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реА:
http://picsfab.com