Problem with modifying Examine Lucene.Net Index with event hook (ezSearch)
I have stumpled upon a problem with modifying the index in the eventhook DocumentWriting.
Here are the details of what process i have been through.
I am hooking the event DocumentWriting to access the point of creation of the index, so i can manipulate the data in the index. I have successfully added a field to some documents, but heres the problem.
Using luke for looking up the index i noticed, that the modified documents are only of the Indextype media.
I have in total 34 documents, but the only documents containing the newly added field are documents of the type media.
My goal is to target all documents and add a single field to all of them.
Here is the code
public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication,
ApplicationContext applicationContext)
{
var indexer = (UmbracoContentIndexer) ExamineManager.Instance.IndexProviderCollection["ExternalIndexer"];
indexer.DocumentWriting += indexer_DocumentWriting;
}
private void indexer_DocumentWriting(object sender, Examine.LuceneEngine.DocumentWritingEventArgs e)
{
// Grab the Lucene document from the event arguments
var doc = e.Document;
doc.Add(new Field("acitivy", "zumba", Field.Store.YES, Field.Index.NOT_ANALYZED));
}
Note the methods are called in ezSearchBootstrapper.cs, that follows with the ezSearch Package
UPDATE****
I have now found, that when i republish a single node manually, the field is added to that node. What i can't seem to understand is, that it doesn't add the field to all documents, when i republish the entire site. I HAVE to publish them manually, to add the field.
What version of Umbraco are you using? Also after re publishing your xml did you manually rebuild the index? If not then you will need to rebuild it, if using v7 there is under developer section a dashboard tool to do it, if using v6 you can install http://our.umbraco.org/projects/developer-tools/examine-dashboard which will also give you ability to rebuild.
Problem with modifying Examine Lucene.Net Index with event hook (ezSearch)
I have stumpled upon a problem with modifying the index in the eventhook DocumentWriting.
Here are the details of what process i have been through.
I am hooking the event DocumentWriting to access the point of creation of the index, so i can manipulate the data in the index. I have successfully added a field to some documents, but heres the problem.
Using luke for looking up the index i noticed, that the modified documents are only of the Indextype media.
I have in total 34 documents, but the only documents containing the newly added field are documents of the type media.
My goal is to target all documents and add a single field to all of them.
Here is the code
public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) { var indexer = (UmbracoContentIndexer) ExamineManager.Instance.IndexProviderCollection["ExternalIndexer"]; indexer.DocumentWriting += indexer_DocumentWriting; } private void indexer_DocumentWriting(object sender, Examine.LuceneEngine.DocumentWritingEventArgs e) { // Grab the Lucene document from the event arguments var doc = e.Document; doc.Add(new Field("acitivy", "zumba", Field.Store.YES, Field.Index.NOT_ANALYZED)); }
Note the methods are called in ezSearchBootstrapper.cs, that follows with the ezSearch Package
UPDATE****
I have now found, that when i republish a single node manually, the field is added to that node. What i can't seem to understand is, that it doesn't add the field to all documents, when i republish the entire site. I HAVE to publish them manually, to add the field.
Any ideas of how to solve this?
Thanks in advance,
I hope you can help me with this issue.
Ditlev
Ditlev,
What version of Umbraco are you using? Also after re publishing your xml did you manually rebuild the index? If not then you will need to rebuild it, if using v7 there is under developer section a dashboard tool to do it, if using v6 you can install http://our.umbraco.org/projects/developer-tools/examine-dashboard which will also give you ability to rebuild.
Regards
Ismail
Hello Ismail,
I am using Umbraco 7.1.4.
I went to the developersection - > Examine Management and found the index and rebuilt it, which works great!
Thanks for the fast answer.
Have a nice day.
is working on a reply...