рдкрд┐рдХреНрдЪрд░ рдлреИрдХреНрдЯреНрд░реА - рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ? рднрд╛рдЧ реи

рдЕрдВрдд рдореЗрдВ рдореИрдВ рджреВрд╕рд░рд╛ рднрд╛рдЧ рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдореЗрдВ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рднрд╛рдЧ рдореЗрдВ, рдореИрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкрд╛рдпрдерди (рд╕рд╛рдЗрдерди рдЖрд╡реЗрд╖рдг рдХреЗ рд╕рд╛рде) рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╣реИред рдЫрд╡рд┐рдпреЛрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ, рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА 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

Source: https://habr.com/ru/post/In188034/


All Articles