Java를 사용하여 검색 결과 작업

검색 결과의 효율적인 관리가 강력한 문서 검색 시스템의 기본이며, 이러한 결과를 해석하고 활용하는 방법을 아는 것은 데이터 기반 의사 결정을 크게 개선할 수 있습니다. 이 가이드에서는 Java를 사용하여 검색 결과를 처리하는 방법을 자세히 살펴봅니다. 인덱스 저장소를 설정하는 것부터 퍼지 검색 매개변수를 설정하는 것까지, 이 튜토리얼은 검색 쿼리와 해당 결과를 처리하는 간단하고 실용적인 방법을 제공합니다. 간단한 용어 일치나 더 복잡한 구문을 분석하든, 이 방법을 사용하면 결과를 철저히 처리하고 귀중한 패턴을 식별할 수 있습니다. 마지막에는 Java에서 검색 결과를 검색하는 방법과 다양한 사용 사례에 적용하는 방법을 능숙하게 익힐 수 있습니다.

Java를 사용하여 검색 결과 작업 단계

  1. 검색 결과를 다루려면 프로젝트에 GroupDocs.Search for Java 라이브러리를 추가하세요.
  2. Index 클래스를 사용하여 인덱스 개체를 생성하고 인덱스를 저장할 폴더 위치를 지정합니다.
  3. Index.add 메서드를 사용하여 지정된 폴더에서 문서를 인덱싱합니다.
  4. SearchOptions 인스턴스를 생성하고 FuzzySearch.setEnabled(true)를 호출하여 퍼지 검색을 활성화합니다.
  5. setFuzzyAlgorithm 메서드를 사용하여 허용되는 최대 차이(예: 3)를 설정합니다.
  6. 구성된 SearchOptions와 함께 지정된 용어나 구문을 포함하는 문서를 검색하려면 Index.search 메서드를 호출합니다.
  7. getDocumentCount 메서드를 사용하여 찾은 문서 수를 표시하고 getOccurrenceCount 메서드를 사용하여 검색어의 총 발생 횟수를 표시합니다.
  8. getFoundDocument 메서드를 사용하여 검색 결과를 반복하고 각 문서에 대해 파일 경로와 발생 횟수를 표시합니다.
  9. 각 문서에 대해 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를 사용하여 검색 보고서 만들기 방법에 대한 자세한 기사를 읽어보세요.

 한국인