How to consume XML Files Into Sitefinity 7.3 Search
Looking to add\update an index with xml information. The parsing of the xml I can take care of, but whenever I try to run UpdateIndex featured here http://docs.sitefinity.com/for-developers-index-external-content it throws back an error "Object reference not set to an instance of an object" I'm not changing anything about the code and using the name I use when implementing a custom search widget and I'm not getting anywhere. Any suggestions on why its not working or what information I am missing.
Hi Andres,
You can try the following code sample in order to add additional information in your search index. This is extended sample that includes url and multilingual support, if needed:
public
void
AddSearchDocument()
var fields =
new
List<IField>();
// The identity field
var identityFld =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
identityFld.Name =
"Id"
;
identityFld.Value =
"Some unique identifier3"
;
fields.Add(identityFld);
var myTitleField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
myTitleField.Name =
"Title"
;
myTitleField.Value =
"My title"
;
fields.Add(myTitleField);
var myContentField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
myContentField.Name =
"Content"
;
myContentField.Value =
"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
;
fields.Add(myContentField);
// In case of multilingual
var myLanguageField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
myLanguageField.Name =
"Language"
;
myLanguageField.Value =
"en"
;
fields.Add(myLanguageField);
// Include the Url of the item
var myUrlField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
myUrlField.Name =
"Link"
;
myUrlField.Value =
"http://www.sitefinity.com"
;
fields.Add(myUrlField);
var mySummaryField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
mySummaryField.Name =
"Summary"
;
mySummaryField.Value =
"Summary text"
;
fields.Add(mySummaryField);
var lastModifiedField =
new
Telerik.Sitefinity.Services.Search.Publishing.Field();
lastModifiedField.Name =
"LastModified"
;
lastModifiedField.Value = DateTime.UtcNow;
fields.Add(lastModifiedField);
// Create the document, containing the fields that we constructed
var doc =
new
Telerik.Sitefinity.Services.Search.Model.Document(fields,
"Id"
);
// index the created document
ServiceBus.ResolveService<ISearchService>().UpdateIndex(
"testindex"
,
new
List<IDocument>() doc );