جستجوی تمام متن راهی برای جستجوی متن/پرسش در مجموعه ای از اسناد است. این رویکرد به سرعت تمام نمونههای یک اصطلاح/عبارت را پیدا میکند و با استفاده از نمایههای متنی کار میکند. در این مقاله نحوه جستجوی برنامهنویسی متن کامل در اسناد با استفاده از Java را خواهیم آموخت.
پس از این، میتوانید تکنیکهای جستجوی مختلفی را پیادهسازی کنید و راهحل جستجوی خود را برای اسناد پردازش کلمه، صفحات گسترده، ارائهها، فایلهای HTML، فایلهای PDF، کتابهای الکترونیکی، پیامهای ایمیل، بایگانیهای ZIP، و بسیاری [فرمتهای سند1 دیگر بسازید.
موضوعات زیر در زیر پوشش داده شده است:
- Java API برای جستجوی تمام متن
- جستجوی تمام متن
- جستجو را در Java انجام دهید
- نتایج جستجو را برجسته کنید
Java API برای جستجوی تمام متن
GroupDocs.Search یک API Java جستجوی کامل متن را ارائه میکند که میتواند در هر برنامهای بدون هیچ ابزار شخص ثالث و وابستگی نرمافزاری ادغام شود. این به شما امکان میدهد [در فهرست بزرگی از قالبهای سند جستجو کنید8. برخی از تکنیک های جستجویی که می توان با استفاده از API انجام داد به شرح زیر است:
- جستجوی حساس به حروف کوچک
- جستجوی عبارات منظم
- جستجوی وجهی
- جستجوی فازی
- جستجوی هموفون
- جستجوی مترادف
دانلود یا پیکربندی کنید
میتوانید فایل JAR را از بخش دانلودها دانلود کنید، یا فقط آخرین پیکربندیهای مخزن و وابستگی را برای pom.xml برنامههای Java مبتنی بر maven خود دریافت کنید.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-search</artifactId>
<version>21.3</version>
</dependency>
جستجوی تمام متن با استفاده از Java
دو مرحله برای انجام جستجو در فایل های ذخیره شده در یک پوشه وجود دارد.
- نمایه سازی
- جستجو را انجام دهید
فایل های فهرست با استفاده از جاوا
یک فهرست دارای متن اسکن شده از تمام اسناد است. بنابراین، زمانی که میخواهید عملیات جستجو را انجام دهید، به جای متن اسناد اصلی، فقط به فهرست ارجاع داده میشود. برای اینکه امکان جستجوی فوری در هزاران سند با فرمتهای یکسان یا متفاوت داشته باشید، باید یک فهرست ایجاد کنید و این اسناد را به آن اضافه کنید. هنگامی که اسناد نمایه می شوند، نمایه برای رسیدگی به درخواست های جستجو آماده است.
دو خط ساده زیر یک نمایه ایجاد می کند و همچنین پوشه اسناد را به فهرست اضافه می کند.
Index index = new Index("indexingFolderPath");
index.add("documentsFolderPath");
جستجو را در Java انجام دهید
پس از نمایه سازی چندین سند با فرمت های یکسان یا متفاوت مانند (Word، PDF، Excel و HTML)، می توانیم به پردازش یک عبارت جستجوی خاص (عبارات جستجوی “Draw”) روی آنها برویم. مراحل زیر برای نحوه انجام جستجوی متن در چندین سند درون یک پوشه با استفاده از Java آمده است:
- پوشه منبع اسناد و پوشه فهرست را مشخص کنید.
- Index را با استفاده از پوشه فهرست ایجاد کنید.
- پوشه منبع را به فهرست اضافه کنید.
- رشته پرس و جو را آماده کنید.
- با استفاده از روش search از کلاس Index جستجو را انجام دهید.
- هر یک از نتایج جستجو را برای ویژگی های هر سند طی کنید.
کد منبع زیر جستجوی متن را در Java در تمام اسناد پوشه ارائه شده انجام می دهد.
// متن مشخص شده را در چندین سند PDF، Word، Excel، HTML با استفاده از Java در یک پوشه جستجو کنید
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath");
// جستجو در فهرست برای متن مشخص شده
SearchResult result = index.search("Draw");
for (int i = 0; i < result.getDocumentCount(); i++) {
FoundDocument document = result.getFoundDocument(i);
System.out.println("Document Path: " + document.getDocumentInfo().getFilePath());
System.out.println("Occurrence : " + document.getOccurrenceCount());
}
مسیر سند و تعداد دفعات عبارات جستجو را در تمام اسناد با آن پوشه مشخص شده دریافت می کنیم. در اینجا اسکرین شات برای تجسم است.
نتایج جستجوی متن در Java را برجسته کنید
اکنون بیایید همان جستجوی متن کامل را انجام دهیم و همچنین همه مواردی را که با درخواست شما مطابقت دارند برجسته کنیم.
مراحل زیر نحوه برجسته کردن نتایج جستجوی متنی را نشان می دهد:
- Index را ایجاد کنید و پوشه اسناد را به فهرست اضافه کنید.
- رشته پرس و جو را آماده کنید.
- با استفاده از روش search پوشه سند را جستجو کنید.
- در حین پیمایش نتایج، برجستهکننده را با استفاده از HtmlHighlighter ایجاد کنید.
- از روش هایلایت برای برجسته کردن نتایج جستجو استفاده کنید.
کد زیر خروجی HTML را با نتایج جستجوی برجسته با استفاده از Java تولید می کند.
// نتایج جستجوی متن کامل چندین سند را در یک پوشه در Java برجسته کنید
Index index = new Index("path/indexingFolder");
index.add("path/documentsFolderPath"); // Synchronous indexing documents from the specified folder
String query = "draw"; // Specify a search query
SearchResult result = index.search(query); // Searching in the index
for (int i = 0; i < result.getDocumentCount(); i++)
{
FoundDocument document = result.getFoundDocument(i);
String path = "path/Highlighted-"+ i +".html";
OutputAdapter outputAdapter = new FileOutputAdapter(path);
HtmlHighlighter highlighter = new HtmlHighlighter(outputAdapter); // Creating the highlighter
index.highlight(document, highlighter); // Generates HTML formatted output document with highlighted search results
}
به عنوان یک خروجی، چندین فایل HTML دریافت خواهیم کرد. هر فایل محتوای یک سند جداگانه (مثلا excel.xlsx، source.docx، target.docx) را با عبارات/کلمات جستجوی برجسته نشان می دهد. در زیر خروجی HTML برجسته شده یک فایل DOCX، فایل TXT و فایل PDF است که با استفاده از کد بالا به دست آمده است.
مجوز API رایگان دریافت کنید
برای استفاده از API بدون محدودیت ارزیابی، می توانید یک مجوز موقت رایگان دریافت کنید.
نتیجه
در این مقاله، ما یاد گرفتیم که متن را در چندین سند یک پوشه در Java جستجو کنیم. علاوه بر این، در مورد چگونگی برجسته کردن متن نتایج جستجو در قالب HTML برای فایلهای MS Word، فایلهای TXT و فایلهای PDF با استفاده از GroupDocs.Search for Java بحث کردیم.
ممکن است با استفاده از مستندات درباره API بیشتر بیاموزید. نمونه های بسیار بیشتری در GitHub موجود است. برای سؤالات، از طریق [فروم 19 با ما تماس بگیرید.