Apache Solr - Dữ liệu lập chỉ mục
Nói chung, indexinglà sự sắp xếp các tài liệu hoặc (các thực thể khác) một cách có hệ thống. Lập chỉ mục cho phép người dùng xác định vị trí thông tin trong tài liệu.
Lập chỉ mục thu thập, phân tích cú pháp và lưu trữ tài liệu.
Lập chỉ mục được thực hiện để tăng tốc độ và hiệu suất của truy vấn tìm kiếm trong khi tìm tài liệu cần thiết.
Lập chỉ mục trong Apache Solr
Trong Apache Solr, chúng ta có thể lập chỉ mục (thêm, xóa, sửa đổi) các định dạng tài liệu khác nhau như xml, csv, pdf, v.v. Chúng ta có thể thêm dữ liệu vào chỉ mục Solr theo một số cách.
Trong chương này, chúng ta sẽ thảo luận về lập chỉ mục -
- Sử dụng Giao diện Web Solr.
- Sử dụng bất kỳ API ứng dụng nào như Java, Python, v.v.
- Sử dụng post tool.
Trong chương này, chúng ta sẽ thảo luận về cách thêm dữ liệu vào chỉ mục của Apache Solr bằng các giao diện khác nhau (dòng lệnh, giao diện web và API ứng dụng khách Java)
Thêm tài liệu bằng Post Command
Solr có một post lệnh trong nó bin/danh mục. Sử dụng lệnh này, bạn có thể lập chỉ mục các định dạng tệp khác nhau như JSON, XML, CSV trong Apache Solr.
Duyệt qua bin thư mục của Apache Solr và thực thi –h option của lệnh đăng, như được hiển thị trong khối mã sau.
[Hadoop@localhost bin]$ cd $SOLR_HOME
[Hadoop@localhost bin]$ ./post -h
Khi thực hiện lệnh trên, bạn sẽ nhận được danh sách các tùy chọn của post command, như hình dưới đây.
Usage: post -c <collection> [OPTIONS] <files|directories|urls|-d [".."]>
or post –help
collection name defaults to DEFAULT_SOLR_COLLECTION if not specified
OPTIONS
=======
Solr options:
-url <base Solr update URL> (overrides collection, host, and port)
-host <host> (default: localhost)
-p or -port <port> (default: 8983)
-commit yes|no (default: yes)
Web crawl options:
-recursive <depth> (default: 1)
-delay <seconds> (default: 10)
Directory crawl options:
-delay <seconds> (default: 0)
stdin/args options:
-type <content/type> (default: application/xml)
Other options:
-filetypes <type>[,<type>,...] (default:
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
rtf,htm,html,txt,log)
-params "<key> = <value>[&<key> = <value>...]" (values must be
URL-encoded; these pass through to Solr update request)
-out yes|no (default: no; yes outputs Solr response to console)
-format Solr (sends application/json content as Solr commands
to /update instead of /update/json/docs)
Examples:
* JSON file:./post -c wizbang events.json
* XML files: ./post -c records article*.xml
* CSV file: ./post -c signals LATEST-signals.csv
* Directory of files: ./post -c myfiles ~/Documents
* Web crawl: ./post -c gettingstarted http://lucene.apache.org/Solr -recursive 1 -delay 1
* Standard input (stdin): echo '{commit: {}}' | ./post -c my_collection -
type application/json -out yes –d
* Data as string: ./post -c signals -type text/csv -out yes -d $'id,value\n1,0.47'
Thí dụ
Giả sử chúng ta có một tệp có tên sample.csv với nội dung sau (trong bin danh mục).
thẻ học sinh | Tên đầu tiên | Tên cuối cùng | Điện thoại | Tp. |
---|---|---|---|---|
001 | Rajiv | Reddy | 9848022337 | Hyderabad |
002 | Siddharth | Bhattacharya | 9848022338 | Kolkata |
003 | Rajesh | Khanna | 9848022339 | Delhi |
004 | Preethi | Agarwal | 9848022330 | Pune |
005 | Trupthi | Mohanty | 9848022336 | Bhubaneshwar |
006 | Archana | Mishra | 9848022335 | Chennai |
Tập dữ liệu trên chứa các chi tiết cá nhân như Id sinh viên, tên, họ, điện thoại và thành phố. Tệp CSV của tập dữ liệu được hiển thị bên dưới. Ở đây, bạn phải lưu ý rằng bạn cần phải đề cập đến lược đồ, ghi lại dòng đầu tiên của nó.
id, first_name, last_name, phone_no, location
001, Pruthvi, Reddy, 9848022337, Hyderabad
002, kasyap, Sastry, 9848022338, Vishakapatnam
003, Rajesh, Khanna, 9848022339, Delhi
004, Preethi, Agarwal, 9848022330, Pune
005, Trupthi, Mohanty, 9848022336, Bhubaneshwar
006, Archana, Mishra, 9848022335, Chennai
Bạn có thể lập chỉ mục dữ liệu này trong lõi có tên sample_Solr sử dụng post lệnh như sau:
[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv
Khi thực hiện lệnh trên, tài liệu đã cho được lập chỉ mục trong lõi được chỉ định, tạo ra kết quả sau.
/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = Solr_sample -Ddata = files
org.apache.Solr.util.SimplePostTool sample.csv
SimplePostTool version 5.0.0
Posting files to [base] url http://localhost:8983/Solr/Solr_sample/update...
Entering auto mode. File endings considered are
xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,
htm,html,txt,log
POSTing file sample.csv (text/csv) to [base]
1 files indexed.
COMMITting Solr index changes to
http://localhost:8983/Solr/Solr_sample/update...
Time spent: 0:00:00.228
Truy cập trang chủ của Solr Web UI bằng cách sử dụng URL sau:
http://localhost:8983/
Chọn lõi Solr_sample. Theo mặc định, trình xử lý yêu cầu là/selectvà truy vấn là “:”. Không thực hiện bất kỳ sửa đổi nào, hãy nhấp vàoExecuteQuery ở cuối trang.
Khi thực hiện truy vấn, bạn có thể quan sát nội dung của tài liệu CSV được lập chỉ mục ở định dạng JSON (mặc định), như được hiển thị trong ảnh chụp màn hình sau.
Note - Theo cách tương tự, bạn có thể lập chỉ mục các định dạng tệp khác như JSON, XML, CSV, v.v.
Thêm tài liệu bằng giao diện web Solr
Bạn cũng có thể lập chỉ mục tài liệu bằng giao diện web do Solr cung cấp. Hãy để chúng tôi xem cách lập chỉ mục tài liệu JSON sau đây.
[
{
"id" : "001",
"name" : "Ram",
"age" : 53,
"Designation" : "Manager",
"Location" : "Hyderabad",
},
{
"id" : "002",
"name" : "Robert",
"age" : 43,
"Designation" : "SR.Programmer",
"Location" : "Chennai",
},
{
"id" : "003",
"name" : "Rahim",
"age" : 25,
"Designation" : "JR.Programmer",
"Location" : "Delhi",
}
]
Bước 1
Mở giao diện web Solr bằng URL sau:
http://localhost:8983/
Step 2
Chọn lõi Solr_sample. Theo mặc định, giá trị của các trường Request Handler, Common Within, Overwrite và Boost lần lượt là / update, 1000, true và 1,0, như được hiển thị trong ảnh chụp màn hình sau.
Bây giờ, hãy chọn định dạng tài liệu bạn muốn từ JSON, CSV, XML, v.v. Nhập tài liệu sẽ được lập chỉ mục vào vùng văn bản và nhấp vào Submit Document , như được hiển thị trong ảnh chụp màn hình sau.
Thêm tài liệu bằng Java Client API
Sau đây là chương trình Java để thêm tài liệu vào chỉ mục Apache Solr. Lưu mã này trong một tệp có tênAddingDocument.java.
import java.io.IOException;
import org.apache.Solr.client.Solrj.SolrClient;
import org.apache.Solr.client.Solrj.SolrServerException;
import org.apache.Solr.client.Solrj.impl.HttpSolrClient;
import org.apache.Solr.common.SolrInputDocument;
public class AddingDocument {
public static void main(String args[]) throws Exception {
//Preparing the Solr client
String urlString = "http://localhost:8983/Solr/my_core";
SolrClient Solr = new HttpSolrClient.Builder(urlString).build();
//Preparing the Solr document
SolrInputDocument doc = new SolrInputDocument();
//Adding fields to the document
doc.addField("id", "003");
doc.addField("name", "Rajaman");
doc.addField("age","34");
doc.addField("addr","vishakapatnam");
//Adding the document to Solr
Solr.add(doc);
//Saving the changes
Solr.commit();
System.out.println("Documents added");
}
}
Biên dịch đoạn mã trên bằng cách thực hiện các lệnh sau trong terminal:
[Hadoop@localhost bin]$ javac AddingDocument
[Hadoop@localhost bin]$ java AddingDocument
Khi thực hiện lệnh trên, bạn sẽ nhận được kết quả sau.
Documents added