Ինդեքս


== Ինդեքս (փնտրման համակարգ) ==
Փնտրման համակարգերի ինդեքսացումը տեղեկությունների հավաքումը, տեսակավորումն ու պահպանումն է՝ տեղեկությունների արագ ու ճշգրիտ փնտրման ապահովման նպատակով։ Ինդեքսի ձևավորումը ներառում է միջ-դիսցիպլինար կոնցեպցիաներ, ինչպիսիք են՝ լեզվաբանությունը, ճանաչողական հոգեբանությունը, մաթեմատիկան, ինֆորմատիկան, ֆիզիկան ու համակարգչային գիտությունը։ Համացանցերի կայքեր որոնելու կոչված փնտրման համակարգերի համատեքստում այս գործընթացի այլընտրանքային անունն է՝ Համացանցային Ինդեքսացում։ 
Հանրաճանաչ համակարգերը կենտրոնանում են առցանց, բնօրինակ լեզվով ստեղծված համակարգերի ամբողջական տեքստերի ինդեքսացմանը։ Վիդեո և աուդիո տիպի մեդիայի տեսակները, ինչպես նաև գրաֆիկան, նույնպես փնտրելի են։ 
Մետա փնտրման համակարգերը վերաօգտագործում են այլ ծառայությունների ստեղծած ինդեքսները, առանց տեղական ինդեքս պահպանելու, մինչդեռ քեշով աշխատող փնտրման համակարգերը ընդմիշտ պահպանում են ինդեքսը՝ դրա կորպուսի հետ միասին։ Ի տարբերություն ամբողջական տեքստերով ինդեքսներին, մասնակի տեքստով աշխատող ծառայությունները արգելում են խորն ինդեքսացումը՝ ինդեքսացման ծավալները նվազեցնելու նպատակով։ Ավելի խոշոր ծառայությունները սովորաբար ինդեքսացում կատարում են նախապես որոշված ժամանակահատվածում՝ հաշվի առնելով համապատասխան ժամանակավճարներն ու գործողությունների համար անհրաժեշտ ծախսերը, մինչդեռ գործակալների վրա հիմնված փնտրման համակարգերը ինդեքսացում կատարում են իրական ժամանակային ռեժիմում։
Ինդեքսացում
Ինդեքսի պահպանման նպատակն է՝ փնտրման հայցի համաձայն պահանջվող փաստաթղթերը գտնելու արագության ու որակի ապահովումը։ Առանց ինդեքսացման՝ փնտրման համակարգը յուրաքանչյուր փաստաթղթի սկանը կկատարեր հենց կորպուսի մեջ, ինչը համապատասխան ժամանակ ու համակարգչային հզորոթյուն կպահանջեր։ Օրինակ՝ եթե 10000 փաստաթղթերի ինդեքսը կարող է հայցվել միլիվայրկյանների ընթացքում, ապա այդ նույն 10000 մեծ փաստաթղթերի յուրաքանչյուր բառի հետևողական սկանավորումը ժամեր կտևեր։ Ինդեքսը պահպանելու համար նախատեսված հավելյալ համակարգչային հիշողությունը, ինչպես նաև՝ տվյալ պրոցեսի համար պահանջված ժամանակի համապատասխան ավելացումը, փաստորեն, դուրս են մղվում տեղեկությունների փնտրման պրոցեսում խնայված ժամանակի շնորհիվ։
Ինդեքսի ձևավորման գործոններ
Փնտրման համակարգի կառուցվածքը ձևավորելիս առկա հիմնական գործոնները ներառում են՝


== Միաձուլման գործոններ ==
Ինչպես են տեղեկությունները ներմուծվում ինդեքս, կամ ինչպես են բառերը կամ թեմատիկ բաղադրիչները ավելացվում ինդեքսին՝ կորպուսի տեքստի դիտման ժամանակ, ու թե արդյոք բազմակի ինդեքսացնողները կարող են աշխատել ապա-սինխրոնիզացված ձևով, թե ոչ։ Ինդեքսացնողը պետք է նախևառաջ ստուգի, թե արդյոք այն թարմացնում է հին բովանդակությունը, թե ավելացնում է նորը։ Դիտումը սովորաբար համադրվում է տեղեկությունների հավաքման քաղաքականությանը։ Փնտրման համակարգերի ինդեքսի միաձուլման պրոցեսը սկզբունքորեն նման է ԷՍ-ՔՅՈՒ-ԷԼ միաձուլման (SQL Merge) հրամանին և միաձուլման այլ ալգորիթմներին։


== Պահպանման տեխնիկաներ ==
Ինչպես պահպանել ինդեքսի տեղեկությունները, այն է՝ արդյոք տեղեկությունները պետք է սեղմվեն, կամ ֆիլտրվեն։


== Ինդեքսի չափսերը ==
Ինչ ծավալի համակարգչային հիշողություն է անհրաժեշտ ինդեքսի աշխատանքի համար։


== Փնտրման արագությունը ==
Որքան արագ կարող է գտնվել կամայական բառը բացված ինդեքսում։ Տեղեկությունների համակարգում միավորի գտնման արագությունը, համեմատած դրա թարմացման կամ հեռացման արագության հետ, համակարգչային գիտության կենտրոնական առանցքներից է։


== Գործունեության ապահովում ==
Ինչպես է ապահովվում ինդեքսի գործունեությունը ժամանակի ընթացքում


== Սխալների հանդուրժողունակություն ==
Որքան կարևոր է տվյալ ծառայության վստահելի լինելը։ Այս առումով խնդիրները ներառում են ինդեքսի փչացման շտկում, ճշգրտելով, թե արդյոք վատ տեղեկությունները կարող են թողնվել մեկուսացման մեջ, վատ սարքավորումների առկայության պայմաններում, թե պետք է մասնատվեն լավ ու վատ մասերը, ինչպես նաև ներառում է աշխատանքը այնպիսի սխեմաների հետ, ինչպիսիք են հաշ-ի վրա հիմնված համակարգերը կամ խառը մասնատումը, ինչպես նաև՝ կրկնօրինակումը։


== Բնական լեզուներով գրված տեքստերի մշակման խոչընդոտները ==


== Բառերի սահմանների անհստակությունը ==
Բնիկ անգլախոսները գուցե նշանագրումը սկզբից կհամարեն առաջնային առաջադրանք, սակայն ամենևին էլ սա չէ այս դեպքում առաջնայինը, երբ նախաձեռնում ես բազմալեզու ինդեքսացնող ստեղծելու գործը։ Թվային վիճակում այլ լեզուների տեքստերը, ինչպես օրինակ չինարենը, ճապոներենը կամ արաբերենը, ավելի բարդ խոչընդոտ են հանդիսանում, քանզի բառերը դրանցում չեն առանձնանում մաքուր սպիտակ տարածքով։ Նշանագրման ժամանակ նպատակն այն է, որ իդենտիֆիկցվեն այն բառերը, որոնք հավանական է, որ կփնտրվեն օգտագործողների կողմից։ Լեզվա-հատուկ տրամաբանություն է որդեգրվում բառերի սահմանները ճշգրտորեն որոշելու նպատակով, ինչը հաճախ հիմնաքարային պահ է յուրաքանչյուր ներառված լեզվի համար վերլուծող ծրագիր ստեղծելիս (կամ սահմանների միանման նշանագրեր ու միանման կառուցվածք ունեցող լեզուների խմբերի համար)։


== Լեզվի անհստակությունը ==
Փաստաթղթերի պատշաճ համապատասխանեցմանն ու դասավորմանը օգնելու նպատակով, շատ փնտրման համակարգեր յուրաքանչյուր բառի վերաբերյալ լրացուցիչ տեղեկություններ են հավաքում, ինչպես օրինակ՝ դրա լեզվական կամ լեքսիկոնային կատեգորիան (խոսվածքի մասը)։ Այս տեխնիկաները լեզուներից կախված տեխնիկաներ են, քանի որ բառակազմության կանոնավորությունը փոխվում է լեզվից լեզու։ Փաստաթղթերը միշտ չէ, որ ճշգրիտ ցույց են տալիս, թե որ լեզվին են պատկանում, կամ էլ որոշ առումով թերի են ներկայացնում տվյալ լեզուն։ Փաստաթղթի նշանագրման գործում որոշ փնտրման համակարգեր փորձում են ավտոմատ կերպով ֆիքսել փաստաթղթի լեզուն։


== Բազմազան ֆայլային ֆորմատներ ==
Որպեսզի հնարավոր լինի ճիշտ որոշել, թե փաստաթղթի որ մասի բայթերն են ներկայացնում տառերը, անհրաժեշտ է ճիշտ որոշել ֆայլային ֆորմատը։ Այնպիսի համակարգերը, որոնք բազմազան ֆայլային ֆորմատներ են ընդունում, պետք է ի զորու լինեն ճիշտ բացել ու կարդալ փաստաթուղթը, ինչպես նաև՝ կարողանան նշանագրել դրա բաղադրանիշերը։


== Սխալների Պահպանում ==
Բնական լեզուներով տեղեկությունների որակը հնարավոր է, որ ոչ միշտ կատարյալ լինի։ Փստաթղթերի անորոշ քանակություն, մասնավորապես Համացանցում, այնքան էլ չեն հետևում պահանջվող ֆայլային պրոտոկոլի։ Երկակի խորհրդանիշերը, հնարավոր է, սխալմամբ կոդավորված լինեն փաստաթղթի տարբեր մասերի։ Առանց այդ խորհրդանիշերի ճանաչման ու դրանց հանդեպ պատշաճ վերաբերմունքի, ինդեքսի կամ ինդեքսացնողի որակը կարող է վատանալ։


== Նշանագրում ==
Ի տարբերություն գրաճանաչ մարդ արարածների, համակարգիչները չեն հասկանում բնական լեզվի կառուցվածքը և չեն կարող ավտոմատ կերպով ճանաչել բառեր ու նախադասություններ։ Համակարգչի համար՝ փաստաթուղթը լոկ բայթերի շարք է։ Համակարգիչները “չգիտեն”, որ “սփեյս” (space) նիշը փաստաթղթում բառերն իրարից առանձնացնողի դերն ունի։ Այդ իսկ պատճառով, մարդիկ պետք է համակարգչին ծրագրավորեն տարբերակելու՝ թե ինչ է նշանակում առանձին բառ, ըստ համապատասխան նշանագրի։ Այսպիսի ծրագիրը սովորաբար կոչվում է նշանագրող (տոկենիզացնող ), վերլուծող կամ լեզվա-վերլուծող։ Շատ փնտրման համակարգեր, ինչպես նաև բնական լեզուների մշակման այլ ծրագրեր, ներմուծում են վերլուծելու մասնագիտացված ծրագրեր, ինչպիսիք են՝ YACC-ն (սինտաքսիկ վերլուծողների գեներատոր) կամ LEX-ը։ 
Նշանագրման ընթացքում վերլուծողը գտնում է այն նշանների շարքերը, որոնք ներկայացնում են բառեր և այնպիսի այլ բաղադրիչներ, ինչպիսիք են թվագրերով ներկայացված շեշտը և նման այլք, որոնց մի մասն էլ տպագրման չենթարկվող նշաններ են։ Վերլուծողը կարող է նաև գտնել այնպիսի միավորներ, ինչպիսիք են էլեկտրոնային փոստը, հեռախոսահամարները և համացանցային կայքերի հասցեները։ Յուրաքանչյուր նշանագիրը իդենտիֆիկացնելիս սովորաբար մի քանի բնութագրիչներ են պահպանվում, օրինակ՝ նշանագրի ռեժիմը (վերին ռեժիմ, ստորին ռեժիմ, խառը ռեժիմ, պահանջվող ռեժիմ), լեզուն կամ կոդավորումը, խոսքի մասերը (օրինակ՝ “գոյական” կամ “բայ”), տեղադիրքը, նախադասության համարը, նախադասության տեղադիրքը, երկարությունն ու տողի համարը։