Darbas su paieškos rezultatais naudojant C#

Efektyvus paieškos rezultatų valdymas yra bet kurios tvirtos dokumentų paieškos sistemos kertinis akmuo, o supratimas, kaip interpretuoti ir panaudoti šiuos rezultatus, gali žymiai pagerinti duomenimis pagrįstų sprendimų priėmimą. Šiame vadove nagrinėjame, kaip dirbti su paieškos rezultatais naudojant C#. Nuo rodyklės saugyklos nustatymo iki neaiškios paieškos parinkčių konfigūravimo, šioje mokymo programoje pateikiamas aiškus ir praktiškas požiūris į paieškos užklausų ir jų rezultatų tvarkymą. Nesvarbu, ar jums reikia analizuoti pavienių terminų ar sudėtingų frazių atitikmenis, šis metodas suteikia galimybę visapusiškai apdoroti rezultatus ir atskleisti reikšmingus modelius. Pabaigoje būsite tikri, kaip gauti paieškos rezultatus C# ir panaudoti juos įvairioms programoms.

Veiksmai, kaip dirbti su paieškos rezultatais naudojant C#

  1. Į savo projektą įtraukite GroupDocs.Search for .NET biblioteką, kad galėtumėte dirbti su paieškos rezultatais
  2. Sukurkite indekso objektą naudodami Index klasę ir nurodykite aplanko kelią, kuriame bus saugoma indeksas
  3. Norėdami įtraukti dokumentus iš nurodyto aplanko į indeksą, naudokite metodą Index.Add
  4. Sukurkite SearchOptions egzempliorių ir įgalinkite neaiškią paiešką nustatydami FuzzySearch.Enabled į true.
  5. Apibrėžkite didžiausią leistinų skirtumų skaičių (pvz., 3) naudodami FuzzyAlgoritm
  6. Naudokite Index.Search metodą, norėdami ieškoti dokumentų, kuriuose yra nurodyti terminai ar frazės kartu su sukonfigūruotomis paieškos parinktimis
  7. Išveskite rastų dokumentų skaičių (DocumentCount) ir bendrą paieškos terminų skaičių (OccurrenceCount)
  8. Peržiūrėkite dokumentus paieškos rezultatuose naudodami GetFoundDocument metodą. Kiekviename dokumente nurodykite jo failo kelią ir įvykių skaičių
  9. Kiekvieną dokumentą kartokite per FoundFields, kad būtų rodoma tokia informacija kaip lauko pavadinimas, atvejų skaičius, rasti terminai ir rastos frazės.

Norėdami efektyviai dirbti su paieškos rezultatais, pirmiausia turite nustatyti savo dokumentų rodyklės saugyklą. Naudojant pateiktą kodo fragmentą, nurodytame aplanke sukuriama rodyklė, į kurią įtraukiami dokumentai iš kito aplanko. Tada paieškos parinktys sukonfigūruojamos taip, kad įgalintų neaiškią paiešką, leidžiančią lanksčiai suderinti su didžiausiu skirtumo slenksčiu. Ši sąranka palengvina tokių terminų kaip Einšteinas arba tokių frazių kaip Reliatyvumo teorija paiešką naudojant pažangius algoritmus. Atlikus paiešką, rezultatai pasiekiami per objektą SearchResult. Rodomas bendras užklausą atitinkančių dokumentų skaičius ir jų atsiradimo skaičiai. Gaunama išsami informacija apie kiekvieną dokumentą, įskaitant failo kelią ir terminų bei frazių pasireiškimus. Kartodami kiekviename dokumente rastus laukus, galite nustatyti konkrečius laukus, kuriuose yra atitikties, ir analizuoti terminus bei frazes pagal jų atitinkamus dažnius. Šis veiksmas parodo, kaip pasiekti indekso paieškos rezultatus naudojant C#, pateikiant struktūrinį gautų duomenų vaizdą.

Kodas darbui su paieškos rezultatais naudojant C#

using GroupDocs.Search;
using GroupDocs.Search.Options;
using GroupDocs.Search.Results;
using System;
namespace WorkwithSearchResultsUsingCSharp
{
internal class Program
{
static void Main(string[] args)
{
// Apply the license to remove the restrictions
// imposed by the Search library
License lic = new License();
lic.SetLicense(@"GroupDocs.Search.lic");
string indexFolder = @"d:\MyIndex\";
string documentsFolder = @"d:\MyDocuments\";
// Creating an index
Index index = new Index(indexFolder);
// Indexing documents from the specified folder
index.Add(documentsFolder);
// Creating search options
SearchOptions options = new SearchOptions();
options.FuzzySearch.Enabled = true; // Enabling the fuzzy search
options.FuzzySearch.FuzzyAlgorithm = new TableDiscreteFunction(3); // Setting the maximum number of differences to 3
// Search for documents containing the word 'Einstein' or the phrase 'Theory of Relativity'
SearchResult result = index.Search("Einstein OR \"Theory of Relativity\"", options);
// Printing the result
Console.WriteLine("Documents: " + result.DocumentCount);
Console.WriteLine("Total occurrences: " + result.OccurrenceCount);
for (int i = 0; i < result.DocumentCount; i++)
{
FoundDocument document = result.GetFoundDocument(i);
Console.WriteLine("\tDocument: " + document.DocumentInfo.FilePath);
Console.WriteLine("\tOccurrences: " + document.OccurrenceCount);
for (int j = 0; j < document.FoundFields.Length; j++)
{
FoundDocumentField field = document.FoundFields[j];
Console.WriteLine("\t\tField: " + field.FieldName);
Console.WriteLine("\t\tOccurrences: " + document.OccurrenceCount);
// Printing found terms
if (field.Terms != null)
{
for (int k = 0; k < field.Terms.Length; k++)
{
Console.WriteLine("\t\t\t" + field.Terms[k].PadRight(20) + field.TermsOccurrences[k]);
}
}
// Printing found phrases
if (field.TermSequences != null)
{
for (int k = 0; k < field.TermSequences.Length; k++)
{
string sequence = string.Join(" ", field.TermSequences[k]);
Console.WriteLine("\t\t\t" + sequence.PadRight(30) + field.TermSequencesOccurrences[k]);
}
}
}
}
}
}
}

Norint maksimaliai padidinti indeksuotų duomenų vertę, labai svarbu efektyviai valdyti ir interpretuoti paieškos rezultatus. Šis procesas apima ne tik dokumentų gavimą, bet ir gilų pasinerimą į terminų įvykius, konkrečių laukų atitikmenis ir frazių sekas. Parodytas metodas suteikia galimybę struktūriškai ir išsamiai analizuoti rezultatus, leidžiančius gauti pažangių duomenų įžvalgų. Be to, bibliotekos nepriklausomybė nuo platformos užtikrina sklandų integravimą įvairiose sistemose ir aplinkose, todėl tai yra universalus pasirinkimas atliekant su paieška susijusias užduotis. Įvaldę šį metodą, galite efektyviai tvarkyti paieškos rezultatus C# ir pritaikyti juos įvairiems scenarijams – nuo duomenų analizės iki dokumentų gavimo realiuoju laiku.

Anksčiau mes pasidalinome išsamiu vadovu, kaip kurti paieškos ataskaitas naudojant C#. Norėdami gauti išsamią nuoseklią apžvalgą, būtinai peržiūrėkite mūsų išsamų straipsnį apie tai, kaip sukurti paieškos ataskaitą naudojant C#.

 Latviski