2011-08-30 31 views
5

Có api solr nào để đọc schema.xml solr không? Lý do tôi cần nó là khía cạnh solr không tương thích ngược. Nếu chỉ mục không định nghĩa trường A, nhưng chương trình cố gắng tạo ra khía cạnh cho trường A, tất cả các khía cạnh sẽ thất bại. Vì vậy, tôi cần kiểm tra trong thời gian chạy những trường chỉ mục nào có trong chỉ mục và tạo các khía cạnh động.Solr có API để đọc schema.xml solr?

Trả lời

3

Bạn có thể lấy schema với http://localhost:8983/solr/admin/file/?contentType=text/xml;charset=utf-8&file=schema.xml

Đó là xml liệu, vì vậy phải phân tích nó để có được những thông tin bạn cần.

Tuy nhiên, nếu chương trình của bạn tạo ra một khía cạnh không hợp lệ, có thể bạn chỉ nên sửa chương trình thay vì cố gắng giải quyết vấn đề này.

+0

Solr Liều lượng có api để đọc nó? Tôi nhận thấy rằng api để đọc solrconf.xml là có sẵn. Tuy nhiên tôi không thể tìm thấy một cho schema.xml –

+0

@Qing Zhang: nền tảng khách hàng của bạn là gì? –

+0

Cách đọc solrconf.xml qua api, bất kỳ liên kết nào đến tài liệu? Tôi cố gắng tìm, nhưng không thể tìm thấy nó. – Krunal

3

Một cách khác là sử dụng LukeRequestHandler. Nó được mô hình hóa sau khi công cụ Luke được sử dụng để chẩn đoán nội dung của Lucene Index. Truy vấn/admin/luke? Show = schema, sẽ hiển thị cho bạn lược đồ. Tuy nhiên, bạn sẽ cần phải định nghĩa nó trong solrconfig.xml như vậy:

<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" /> 

Tài liệu của LukeRequestHandler link

3

Kể từ Solr 4.2 API REST của Schema cho phép bạn để có được những schema với:

http://localhost:8983/solr/schema 

hoặc với tên chính:

http://localhost:8983/solr/mycorename/schema 

Vì Solr 4.4 bạn cũng có thể sửa đổi lược đồ của mình.

more details on the Solr Wiki page

1

Thực ra bạn có API lược đồ cho điều đó. API lược đồ Solr cho phép sử dụng API REST để lấy thông tin về schema.xml

Trong Solr 4.2 và 4.3, nó chỉ cho phép truy cập GET (chỉ đọc), nhưng trong Solr 4.4, trường mới và lệnh copyField có thể được thêm vào lược đồ. phát hành Solr trong tương lai sẽ mở rộng chức năng này để cho phép schema hơn yếu tố để được cập nhật

API nhập điểm

/collection/schema: retrieve the entire schema 
/collection/schema/fields: retrieve information about all defined fields, or create new  fields with optional copyField directives 
/collection/schema/fields/name: retrieve information about a named field, or create a new named field with optional copyField directives 
/collection/schema/dynamicfields: retrieve information about dynamic field rules 
/collection/schema/dynamicfields/name: retrieve information about a named dynamic rule 
/collection/schema/fieldtypes: retrieve information about field types 
/collection/schema/fieldtypes/name: retrieve information about a named field type 
/collection/schema/copyfields: retrieve information about copy fields, or create new copyField directives 
/collection/schema/name: retrieve the schema name 
/collection/schema/version: retrieve the schema version 
/collection/schema/uniquekey: retrieve the defined uniqueKey 
/collection/schema/similarity: retrieve the global similarity definition 
/collection/schema/solrqueryparser/defaultoperator: retrieve the default operator 

Ví dụ

Input Nhận một danh sách tất cả các lĩnh vực.

curl http://localhost:8983/solr/collection1/schema/fields?wt=json 

Nhập Lấy toàn bộ lược đồ trong JSON.

curl http://localhost:8983/solr/collection1/schema?wt=json 

Thông tin thêm here: apache-solr-ref-guide-4.5.pdf (tìm kiếm cho Schema API)