Class | Chef::Expander::Solrizer |
In: |
lib/chef/expander/solrizer.rb
|
Parent: | Object |
ADD | = | "add" |
DELETE | = | "delete" |
SKIP | = | "skip" |
ITEM | = | "item" |
ID | = | "id" |
TYPE | = | "type" |
DATABASE | = | "database" |
ENQUEUED_AT | = | "enqueued_at" |
DATA_BAG_ITEM | = | "data_bag_item" |
DATA_BAG | = | "data_bag" |
X_CHEF_id_CHEF_X | = | 'X_CHEF_id_CHEF_X' |
X_CHEF_database_CHEF_X | = | 'X_CHEF_database_CHEF_X' |
X_CHEF_type_CHEF_X | = | 'X_CHEF_type_CHEF_X' |
CONTENT_TYPE_XML | = | {"Content-Type" => "text/xml"} |
START_XML | = | "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" |
ADD_DOC | = | "<add><doc>" |
DELETE_DOC | = | "<delete>" |
ID_OPEN | = | "<id>" |
ID_CLOSE | = | "</id>" |
END_ADD_DOC | = | "</doc></add>\n" |
END_DELETE | = | "</delete>\n" |
START_CONTENT | = | '<field name="content">' |
CLOSE_FIELD | = | "</field>" |
FLD_CHEF_ID_FMT | = | '<field name="X_CHEF_id_CHEF_X">%s</field>' |
FLD_CHEF_DB_FMT | = | '<field name="X_CHEF_database_CHEF_X">%s</field>' |
FLD_CHEF_TY_FMT | = | '<field name="X_CHEF_type_CHEF_X">%s</field>' |
FLD_DATA_BAG | = | '<field name="data_bag">%s</field>' |
KEYVAL_FMT | = | "%s__=__%s " |
action | [R] | |
chef_object | [R] | |
database | [R] | |
enqueued_at | [R] | |
indexer_payload | [R] | |
obj_id | [R] | |
obj_type | [R] |
Takes a flattened hash where the values are arrays and converts it into a dignified XML document suitable for POST to Solr. The general structure of the output document is like this:
<?xml version="1.0" encoding="UTF-8"?> <add> <doc> <field name="content"> key__=__value key__=__another_value other_key__=__yet another value </field> </doc> </add>
The document as generated has minimal newlines and formatting, however.