рдХреБрдЫ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:
- рдЦреЛрдЬ рдЗрдВрдЬрди рдбреЗрд╡рд▓рдкрд░реНрд╕ (Google, Yandex, рдЖрджрд┐) рд╕реЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдиреБрдХреВрд▓ рдЗрдВрдЯрд░рдлреЗрд╕, рдЖрдХреГрддрд┐ рд╡рд┐рдЬреНрдЮрд╛рди рд╕рдорд░реНрдерди, рд╢рдмреНрджрдХреЛрд╢ рд╕реБрдзрд╛рд░, рд╕рдВрднрд╡рддрдГ рдЦреЛрдЬ рдЗрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рд╕рд╛рдЗрдЯ рдХрд╛ рддреЗрдЬреА рд╕реЗ рдЕрдиреБрдХреНрд░рдордг, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рд▓рд┐рдП рд╕реАрдорд┐рдд рд╡рд┐рдХрд▓реНрдк рдФрд░ рдЕрдиреБрдХреНрд░рдордг рдХреА рдЕрдкрд░рд┐рд╣рд╛рд░реНрдп рджреЗрд░реАред ;
- DBMS рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MySQL рдХреЗ рд▓рд┐рдП FULLTEXT рдЗрдВрдбреЗрдХреНрд╕ ): рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдЕрдк-рдЯреВ-рдбреЗрдЯ рд╕рд░реНрдЪ рдЗрдВрдбреЗрдХреНрд╕, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЙрдкрд╕реНрдерд┐рддрд┐ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг, рд▓реЗрдХрд┐рди, рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдкрд░ рдмрд╣реБрдд рдХрдо рдкреНрд░рджрд░реНрд╢рди, рдЖрдХреГрддрд┐ рд╡рд┐рдЬреНрдЮрд╛рди рдХреА рдХрдореА, рдпрд╛, рд╕рдмрд╕реЗ рдЦрд░рд╛рдмред рдорд╛рдорд▓рд╛, DBMS рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ рдлрдВрдб рдХреА рдкреВрд░реНрдг рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐;
- рдПрдХ рдЕрд▓рдЧ рдкреБрд╕реНрддрдХрд╛рд▓рдп / рдкреВрд░реНрдг-рдкрд╛рда рдЦреЛрдЬ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рддреАрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдиреНрдп рджреЛ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдлрд╛рдпрджреЗ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдЪреНрдЪрд╛рдИ рдЦрд╛рдорд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд╣реАрдВ рдереА - рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрднреА-рдХрднреА рдПрдХ рдбреЗрдорди рд▓реЙрдиреНрдЪ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдлрд┐рдВрдХреНрд╕ ), рдЬреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЕрдкрдиреЗ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рд╣реИрдВред рдореИрдВ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрд▓реНрдк-рдЬреНрдЮрд╛рдд рдЬрд╝рд╛рдкрд┐рдпрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред
рд╕рд┐рдВрд╣рд╛рд╡рд▓реЛрдХрди
рдпрд╣ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд (GPL) рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкрд╛рдпрдерди, PHP, рд░реВрдмреА, рдкрд░реНрд▓, рдЬрд╛рд╡рд╛, Tcl рдФрд░ C # рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реБрд╡рд┐рдзрд╛рдПрдБ:
- рдкреВрд░реНрдг рдпреВрдирд┐рдХреЛрдб рд╕рдорд░реНрдерди
- рдмреВрд▓рд┐рдпрди рдЦреЛрдЬ, рд░реИрдВрдХрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЦреЛрдЬ, рдореБрдЦреМрдЯрд╛, рд╕рдорд╛рдирд╛рд░реНрдердХ рджреНрд╡рд╛рд░рд╛, рдЫрдБрдЯрд╛рдИ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ;
- рджреБрдирд┐рдпрд╛ рдХреА 15 рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рд░реВрд╕реА рд╕рд╣рд┐рдд);
- рд╢рдмреНрджрдХреЛрд╢ рдХреНрд╡реЗрд░реА рд╕реБрдзрд╛рд░ рд╕рдорд░реНрдерди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, xapain рдЕрдиреБрд░реЛрдз рдХреЛ xapian рджреНрд╡рд╛рд░рд╛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)
- рд╕рдорд╛рдирддрд╛ рд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рдЦреЛрдЬ;
- рдмреЙрдХреНрд╕ (рдкреАрдбреАрдПрдл, рдПрдЪрдЯреАрдПрдордПрд▓, рдЖрд░рдЯреАрдПрдл, рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯ рдСрдлрд┐рд╕, рдУрдкрдирдбреИрдХреНрдореЗрдВрдЯ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЖрд░рдкреАрдПрдо рдФрд░ рдбреЗрдмрд┐рдпрди рдкреИрдХреЗрдЬ) рд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди, рдирдП рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдПрдХ рдорд╛рдпрдиреЗ рдореЗрдВ, Xapian рдХрд╛ рдореБрдЦреНрдп рджреЛрд╖ C ++ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рд╣реИред SWIG рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╛рдзреНрдпрдХрд╛рд░реА рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдореМрдЬреВрдж API C ++ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ ред
рд╕реМрднрд╛рдЧреНрдп рд╕реЗ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рдкреНрд░рднрд╛рд╡реА Xappy рд░реИрдкрд░ рд╣реИ рдЬреЛ рд╕рднреА рдЧрдВрджреЗ рдХрд╛рдо рдХрд╛ рдЦреНрдпрд╛рд▓ рд░рдЦрддрд╛ рд╣реИред
рд╕реНрдерд╛рдкрдирд╛
рдкрд╣рд▓рд╛ рдХрджрдо рдЦреБрдж рдЬрд╝реЗрдкрд┐рдпрди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ, рдЕрдЬрдЧрд░ рдФрд░ Xappy рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдпрдХрд╛рд░реАред рдЕрдзрд┐рдХрд╛рдВрд╢ рдЬреАрдПрдирдпреВ / рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдг рдХреЗ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдмрдВрдЯреВ 10.10 рдореЗрдВ, рдЖрдкрдХреЛ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
sudo apt-get install libxapian15 python-xapian python-xappy
Xappy easy_install рдпрд╛ рдкрд╛рдЗрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИ:
sudo pip install xappy
рдЕрдиреБрдХреНрд░рдордг
рдЖрдЗрдП рдХреБрдЫ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ:
import xappy # # connection = xappy.IndexerConnection('/path/to/base') # connection.add_field_action( 'title', xappy.FieldActions.INDEX_FREETEXT, weight=5, language='ru') connection.add_field_action( 'description', xappy.FieldActions.INDEX_FREETEXT, language='ru')
рдЬрдм рдЖрдк рдЕрдиреБрдХреНрд░рдордг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдирдпрд╛ (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж) рдЦреЛрдЬ рд╕реВрдЪрдХрд╛рдВрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдЬрд┐рд╕рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╛рд░реВрдк рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред
рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рд╕реВрдЪрдХрд╛рдВрдХ рдлрд╝реАрд▓реНрдб рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдирд╛рдо, рдкреНрд░рдХрд╛рд░ рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВред
рдлрд╝реАрд▓реНрдб рдкреНрд░рдХрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ:
- INDEX_FREETEXT: рдкрд╛рда рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдкрд╛рда рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдмрд┐рдирд╛ рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рдореЗрдВ = to рдЖрд░рдпреВ тАЩрдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рднрд╛рд╖рд╛ рдХреА рдЖрдХреГрддрд┐ рд╡рд┐рдЬреНрдЮрд╛рди рдФрд░ рднрд╛рд░ = 5 - рд░реИрдВрдХрд┐рдВрдЧ рдХрд░рддреЗ рд╕рдордп рдХреНрд╖реЗрддреНрд░ рдХрд╛" рд╡рдЬрди ";
- INDEX_EXACT: рд╢рдмреНрдж рдХрд╛ рд╕рдЯреАрдХ рдорд╛рди рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╕рдЯреАрдХ рдорд╛рдиреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛), рдкрд╛рда рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ;
- рдкреНрд░рдХрд╛рд░: рдЫрдБрдЯрд╛рдИ рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реЛрдЧрд╛ред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЫрдВрдЯрд╛рдИ lexicographic рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ, рднрд▓реЗ рд╣реА рдЗрд╕рдореЗрдВ рдХреНрдпрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рддрд╛рд░реАрдЦреЛрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк = 'рдбреЗрдЯ' рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдлреЙрд░реНрдореЗрдЯ YYYYMMDD, YYYY-MM-DD рдпрд╛ YYYY / MM / DD) рдФрд░ рдЯрд╛рдЗрдк = 'рдлреНрд▓реЛрдЯ' рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдВрдЦреНрдпрд╛ (рдХрд┐рд╕реА рднреА рдкрд╛рдпрдерди рдлреЙрд░реНрдореЗрдЯ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд) рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП;
- COLLAPSE: рд╕рдореВрдЪреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдореВрд╣реАрдХрд░рдг рд╣реЛрдЧрд╛ (SQL рдореЗрдВ GROUP BY рдХрд╛ рдПрдирд╛рд▓реЙрдЧ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░реЗрдгреА рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреБрдХреНрдд рд╣реИ);
- STORE_CONTENT: INDEX_FREETEXT рдХреЗ рд╕рдорд╛рди рдХреЗрд╡рд▓ рдкрд╛рда рднреА рд╕реВрдЪрдХрд╛рдВрдХ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдЙрдкрдпреБрдХреНрдд рд╣реИ:
# doc = xappy.UnprocessedDocument() # doc.fields.append(xappy.Field('title', ' ')) doc.fields.append(xappy.Field('description', ' ')) # connection.add(doc)
рдкреНрд░рддреНрдпреЗрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
# for posts_item in posts: doc = xappy.UnprocessedDocument() # # ! doc.id = posts_item.id doc.fields.append(xappy.Field('title', posts_item.title)) doc.fields.append(xappy.Field('description', posts_item.description) connection.add(doc)
рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдирд╛ рдФрд░ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:
connection.flush() connection.close()
рдпрд╣реА рд╣реИ, рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ!
рдЦреЛрдЬ
рдореМрдЬреВрджрд╛ рдЗрдВрдбреЗрдХреНрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЦреЛрдЬ рдЗрдВрдбреЗрдХреНрд╕ рдХреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдиреЗрдХреНрд╢рди рдЦреЛрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
import xappy # # connection = xappy.SearchConnection('/path/to/base')
рдПрдХ рд╕реНрдерд┐рддрд┐ рд╕рдВрднрд╡ рд╣реИ рдЬрдм рдЦреЛрдЬ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдирдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдиреЗрдХреНрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓рдирд╛ рд╣реЛрдЧрд╛:
connection.reopen()
рдЦреЛрдЬ рдХреНрд╡реЗрд░реА ( SearchConnection рд╡рд░реНрдЧ) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ, рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИ query_parse:
# query = connection.query_parse('') # 10 # 10, 20 .. results = connection.search(query, 0, 10) # - if results.matches_estimated > 0: for results_item in results: print(results_item.rank, results_item.id) else: print(' ')
STORE_CONTENT рдпрд╛ INDEX_EXACT рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП, рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореБрдЦреНрдп рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ ID рджреНрд╡рд╛рд░рд╛ рдЪрдпрдирд┐рдд рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдЦреЛрдЬ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
for results_item in results: print(results_item.data['title'])
рд╕рдВрдмрдВрдзрд┐рдд рд▓рд┐рдВрдХ
рдмреЗрд╢рдХ, рдпрд╣ рдЙрди рд╕рднреА рд╕реЗ рджреВрд░ рд╣реИ рдЬреЛ рдЬрд╝рд╛рдкрд┐рдпрди рд╕рдХреНрд╖рдо рд╣реИред Xappy 0.5 рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЗрди рдФрд░ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИ, рдЖрдк рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЬрд╝рд╛рдкрд┐рдпрди рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╕рд╛рдордЧреНрд░реА рдЕрдВрдЧреНрд░реЗрдЬрд╝реА рдореЗрдВ рдЗрд╕ рдЬрд╝рд╛рдкрд┐рдпрди рдмреНрд▓реЙрдЧ рдореЗрдВ рд╣реИрдВред