使用 Post 命令添加文档
Solr 有一个post命令在其bin/目录。使用此命令,您可以在 Apache Solr 中索引各种格式的文件,例如 JSON、XML、CSV。
浏览binApache Solr 目录并执行–h optionpost 命令,如以下代码块所示。
[Hadoop@localhost bin]$ cd $SOLR_HOME
[Hadoop@localhost bin]$ ./post -h
执行上述命令后,您将获得一个选项列表post command, 如下所示。
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"
例子
假设我们有一个名为sample.csv具有以下内容(在bin目录)。
Student ID |
First Name |
Lasst Name |
Phone |
City |
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 |
上述数据集包含学生 ID、名字、姓氏、电话和城市等个人详细信息。数据集的 CSV 文件如下所示。在这里,您必须注意您需要提及架构,并记录其第一行。
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
您可以在名为的核心下索引此数据sample_Solr使用post命令如下 -
[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv
在执行上述命令时,给定的文档在指定的核心下被索引,生成以下输出。
/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
使用以下 URL 访问 Solr Web UI 的主页 -
http://localhost:8983/
选择核心Solr_sample. 默认情况下,请求处理程序是/select查询是“:”。不做任何修改,点击ExecuteQuery页面底部的按钮。
在执行查询时,您可以观察到 JSON 格式(默认)的索引 CSV 文档的内容,如下面的屏幕截图所示。
Note− 同理,您可以索引其他文件格式,例如 JSON、XML、CSV 等。