검색 결과의 효율적인 관리가 강력한 문서 검색 시스템의 기본이며, 이러한 결과를 해석하고 활용하는 방법을 아는 것은 데이터 기반 의사 결정을 크게 개선할 수 있습니다. 이 가이드에서는 Java를 사용하여 검색 결과를 처리하는 방법을 자세히 살펴봅니다. 인덱스 저장소를 설정하는 것부터 퍼지 검색 매개변수를 설정하는 것까지, 이 튜토리얼은 검색 쿼리와 해당 결과를 처리하는 간단하고 실용적인 방법을 제공합니다. 간단한 용어 일치나 더 복잡한 구문을 분석하든, 이 방법을 사용하면 결과를 철저히 처리하고 귀중한 패턴을 식별할 수 있습니다. 마지막에는 Java에서 검색 결과를 검색하는 방법과 다양한 사용 사례에 적용하는 방법을 능숙하게 익힐 수 있습니다.
Java를 사용하여 검색 결과 작업 단계
- 검색 결과를 다루려면 프로젝트에 GroupDocs.Search for Java 라이브러리를 추가하세요.
- Index 클래스를 사용하여 인덱스 개체를 생성하고 인덱스를 저장할 폴더 위치를 지정합니다.
- Index.add 메서드를 사용하여 지정된 폴더에서 문서를 인덱싱합니다.
- SearchOptions 인스턴스를 생성하고 FuzzySearch.setEnabled(true)를 호출하여 퍼지 검색을 활성화합니다.
- setFuzzyAlgorithm 메서드를 사용하여 허용되는 최대 차이(예: 3)를 설정합니다.
- 구성된 SearchOptions와 함께 지정된 용어나 구문을 포함하는 문서를 검색하려면 Index.search 메서드를 호출합니다.
- 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를 사용하여 검색 보고서 만들기 방법에 대한 자세한 기사를 읽어보세요.