| 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.