Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Lucas 13 posts 37 karma points
    Mar 08, 2013 @ 10:13
    Lucas
    0

    Examine search availability

    Hi all,

    When umbraco page is published Examine index is also updated which is great..

    ...Unfortunatly it seems that Examine/Lucene is doing delete and then insert which means search results won't be available just after delete operation.

    For example if umbraco pages are "product pages" when product description is updated it will dissapear from website for short period of time which is not ideal..

     

    Is there any way to ensure 100% search/index read availability?

    I was looking into solutions with Lucene master-slave setup where master is updated in which time searcher is using slave and once update is complete it switches to master (slave files needs to be updated after that of course). This solution seems a bit complicated + I'm not sure how it could be achieved with Examine.

    Any suggestion greatly appriciated :)

  • Lucas 13 posts 37 karma points
    Mar 12, 2013 @ 17:49
    Lucas
    0

    Hi all,

    I have the problem and potential solution:

    Problem: in Examine it's possible to open IndexReader while update is taking place. When lucene queue is processed after 1st commits IndexReader.IsCurrent will return false which will make IndexReader to be reopened using current state of the index. That means index can be opened after delete operation but before add operation.

    Solution:I think the way to solve this is it use Lucene near-real-time search capabiliets added in 2.9 (Examine is currently using 2.9.4 AFAIK).

    Unfortunatly doing this out-of-the-box in Examine is not possible (if I'm missing something please let me know :)) since it requires IndexReader to be opened FROM IndexWriter doing the writes.

    One way around this would be to get Indexer using ExamineManager, get writer and then reader.

    Then create searcher based on the reader and use "raw lucene.net". This solution is of course not ideal as it's losing all the nicenes of creating Examine queries and simplified API (on top of that I've experienced some locking problem while trying that).

     

    That's my findings so far :)

     

    Regards,

    Lucas

     

Please Sign in or register to post replies

Write your reply to:

Draft