Ефективното управление на резултатите от търсенето е фундаментално за една мощна система за извличане на документи и знанието как да интерпретирате и използвате тези резултати може значително да подобри решенията, управлявани от данни. В това ръководство се задълбочаваме как да работим с резултати от търсене с помощта на Java. От създаването на индексно хранилище до настройването на параметри за размито търсене, този урок предлага ясен, практически метод за обработка на заявки за търсене и съответните им резултати. Независимо дали анализирате прости съвпадения на термини или по-сложни фрази, този подход ви позволява да обработите резултатите задълбочено и да идентифицирате ценни модели. В крайна сметка ще научите как да извличате резултати от търсене в Java и да ги прилагате в различни случаи на употреба.
Стъпки за работа с резултати от търсене с помощта на Java
- Добавете библиотеката GroupDocs.Search for Java към вашия проект, за да работите с резултатите от търсенето
- Създайте индексен обект с помощта на класа Index и посочете местоположението на папката за съхраняване на индекса
- Използвайте метода Index.add, за да индексирате документи от определената папка
- Създайте екземпляр на SearchOptions и активирайте размито търсене, като извикате FuzzySearch.setEnabled(true)
- Задайте максимално допустимите разлики (напр. 3) с метода setFuzzyAlgorithm
- Извикайте метода Index.search, за да търсите документи, съдържащи посочените термини или фрази, заедно с конфигурираните SearchOptions
- Показване на броя на документите, намерени с метода getDocumentCount, и общия брой срещания на думи за търсене с метода getOccurrenceCount
- Преминете през резултатите от търсенето с помощта на метода getFoundDocument и за всеки документ покажете неговия файлов път и броя на срещанията
- За всеки документ преминете през колекцията FoundDocumentField и покажете подробности като имена на полета, брой на срещания, намерени термини и фрази
За да обработвате ефективно резултатите от търсенето, първата стъпка е да създадете индексно хранилище за вашите документи. С предоставения кодов фрагмент се създава индекс в определена папка и документи от друга папка се добавят към този индекс. След това опциите за търсене се конфигурират за активиране на размито търсене, което позволява гъвкаво съпоставяне с определен праг за разлики. Тази конфигурация поддържа търсене на термини като Айнщайн или фрази като Теория на относителността, използвайки сложни алгоритми. След извършване на търсенето резултатите се извличат чрез обекта SearchResult. Показани са броят на документите, съответстващи на заявката, и броят на техните срещания. Извличат се подробни данни за всеки документ, включително пътя на файла и срещания термин. Чрез повторение на намерените полета във всеки документ можете да посочите конкретни полета със съвпадения и да анализирате термини и фрази заедно с тяхната честота. Кодът по-долу показва как да достъпите до резултати от индексирано търсене с Java, предлагайки организиран изглед на извлечената информация.
Код за работа с резултати от търсене с помощта на Java
import com.groupdocs.search.Index; | |
import com.groupdocs.search.licenses.License; | |
import com.groupdocs.search.options.SearchOptions; | |
import com.groupdocs.search.options.TableDiscreteFunction; | |
import com.groupdocs.search.results.FoundDocument; | |
import com.groupdocs.search.results.FoundDocumentField; | |
import com.groupdocs.search.results.SearchResult; | |
public class WorkwithSearchResultsUsingJava { | |
public static void main(String[] args) throws Exception { | |
// Apply the license to remove the restrictions | |
// imposed by the Search library | |
License license = new License(); | |
license.setLicense("GroupDocs.Search.lic"); | |
// The path where the index will be stored | |
String indexFolder = "c:\\MyIndex\\"; | |
// The folder containing the documents you want to search | |
String documentsFolder = "c:\\MyDocuments\\"; | |
// Creating an index in the specified folder | |
Index index = new Index(indexFolder); | |
// Indexing documents from the specified folder | |
index.add(documentsFolder); | |
// Creating search options | |
SearchOptions options = new SearchOptions(); | |
options.getFuzzySearch().setEnabled(true); // Enabling the fuzzy search | |
options.getFuzzySearch().setFuzzyAlgorithm(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 | |
System.out.println("Documents: " + result.getDocumentCount()); | |
System.out.println("Total occurrences: " + result.getOccurrenceCount()); | |
for (int i = 0; i < result.getDocumentCount(); i++) { | |
FoundDocument document = result.getFoundDocument(i); | |
System.out.println("\tDocument: " + document.getDocumentInfo().getFilePath()); | |
System.out.println("\tOccurrences: " + document.getOccurrenceCount()); | |
for (FoundDocumentField field : document.getFoundFields()) { | |
System.out.println("\t\tField: " + field.getFieldName()); | |
System.out.println("\t\tOccurrences: " + document.getOccurrenceCount()); | |
// Printing found terms | |
if (field.getTerms() != null) { | |
for (int k = 0; k < field.getTerms().length; k++) { | |
System.out.println("\t\t\t" + field.getTerms()[k] + " - " + field.getTermsOccurrences()[k]); | |
} | |
} | |
// Printing found phrases | |
if (field.getTermSequences() != null) { | |
for (int k = 0; k < field.getTermSequences().length; k++) { | |
String[] terms = field.getTermSequences()[k]; | |
String sequence = ""; | |
for (String term : terms) { | |
sequence += term + " "; | |
} | |
System.out.println("\t\t\t" + sequence + " - " + field.getTermSequencesOccurrences()[k]); | |
} | |
} | |
} | |
} | |
} | |
} |
Правилното управление и анализиране на резултатите от търсенето е от съществено значение за извличане на пълния потенциал от индексираните данни. Този процес се простира отвъд простото извличане на документи; то включва анализиране на срещания термин, идентифициране на съвпадения в конкретни полета и изследване на шаблони на фрази. Методът, описан тук, ви позволява да изследвате резултатите по задълбочен и организиран начин, отключвайки по-задълбочени прозрения за данни. В допълнение, съвместимостта на библиотеката с различни платформи гарантира плавна интеграция в различни системи и среди, подобрявайки нейната гъвкавост за задачи, свързани с търсене. Като овладеете тази техника, вие ще можете ефективно да обработвате резултати от търсене в Java и да ги прилагате към голямо разнообразие от случаи на употреба, от анализ на данни до извличане на документи в реално време.
По-рано предоставихме задълбочено ръководство за създаване на отчети за търсене с помощта на Java. За да следвате пълния процес стъпка по стъпка, не забравяйте да прочетете нашата подробна статия за това как да създайте отчет за търсене с помощта на Java.