Copied to clipboard

Flag this post as spam?

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


  • Aron Gamble 63 posts 76 karma points
    Sep 13, 2010 @ 13:36
    Aron Gamble
    0

    Examine returns multiple results when async is true

    Umbraco 4.5.2

    Examine rc3

    When async is set to true, multiple results for the same node are returned but when it's false the search works fine.

     

  • Ismail Mayat 4511 posts 10090 karma points MVP 2x admin c-trib
    Sep 13, 2010 @ 13:40
    Ismail Mayat
    0

    Aron,

    Do you also get multiple results when you look with luke?

    Regards

    Ismail

  • Aaron Powell 1708 posts 3046 karma points c-trib
    Sep 13, 2010 @ 14:38
    Aaron Powell
    0

    Async only effects the indexing of a node, so when you change it and there'll be no change unless rebuild your index. 

    As Ismail has said check Luke and see if there is duplicate results in there as well.

    Are you running any custom event handlers on your indexer?

  • Aron Gamble 63 posts 76 karma points
    Sep 13, 2010 @ 17:21
    Aron Gamble
    0

    I'll give Luke a go - is it easy to set up?

    I'm not running any custom event handlers - literally out of the box with one simple index. Literally changing async from false to true brings back multiple results.

    Cheers

     

    Aron

     

  • Aron Gamble 63 posts 76 karma points
    Sep 13, 2010 @ 17:43
    Aron Gamble
    0

    Luke is bringing back the same no. of results. The duplicates are almost identical in every way apart from Doc. id and updateDate

     

     

     

  • Ismail Mayat 4511 posts 10090 karma points MVP 2x admin c-trib
    Sep 13, 2010 @ 17:56
    Ismail Mayat
    0

    aron,

    Whats the difference in time between updatedate for any 2 indentical docs?  Also try deleting your index and clearing your umbraco log table then publish just one page. Then check the umbraco log you have 2 publish events? Actually thinking about it dont think its umbraco publishing twice as you are only getting the error when you change async value it may be a bug in examine?

    Regards

    Ismail

  • Aron Gamble 63 posts 76 karma points
    Sep 13, 2010 @ 18:05
    Aron Gamble
    0

    If i change async to false - Luke doesn't return the duplicates. It's like async is causing it to index old versions of the node...

  • Aron Gamble 63 posts 76 karma points
    Sep 13, 2010 @ 18:31
    Aron Gamble
    0

    These are the update times of the duplicate nodes.

    20100913165340000

    20100913170318000

     

  • Aaron Powell 1708 posts 3046 karma points c-trib
    Sep 14, 2010 @ 08:24
    Aaron Powell
    0

    Do you have any properties on your doc types which are named the same as Umbraco properties (sortOrder, parentID, etc)? That is a known design limitation, each property (user defined or standard) must be unique.

    When you do a publish that results in the duplicates have a look into the Queue folder, see if there are any files which are left in there. When you do a publish it will create a Delete and an Add file for each node, if the Delete fails for some reason then the Add can still run, resulting in duplicates.

    I've never seen the problem you're describing though, not unless I had a custom event handler which was running and required the HttpContext (or some other Http-scoped object).

  • Aron Gamble 63 posts 76 karma points
    Sep 14, 2010 @ 08:41
    Aron Gamble
    0

    All the properties on my doc types are unique and I watched the queue folder after a publish - it was full of files for a short time but then totally empty when the indexing had finished. Below are my Examine config files the IMISearchIndexSet is the one i'm searching:-

    ExamineIndex

     

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to create your own index sets.

    Index/Search providers can be defined in the UmbracoSettings.config

     

    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <ExamineLuceneIndexSets>

        <!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->

        <IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields />

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

        <!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->

        <IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">

            <IndexAttributeFields>

                <add Name="id" />

                <add Name="nodeName"/>

                <add Name="updateDate" />

                <add Name="writerName" />

                <add Name="loginName" />

                <add Name="email" />

                <add Name="nodeTypeAlias" />

            </IndexAttributeFields>

            <IndexUserFields/>

            <IncludeNodeTypes/>

            <ExcludeNodeTypes />

        </IndexSet>

     

     

        <IndexSet SetName="IMISearchIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/IMISearch/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields>

    <add Name="content" />

    <add Name="rightContent" />

    <add Name="tableContent" />

          <add Name="reportTitle" />

          <add Name="umbracoFile" />

          </IndexUserFields>

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

    </ExamineLuceneIndexSets>

     

     

    ExamineSettings

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to add your own search/index providers.

    Index sets can be defined in the ExamineIndex.config if you're using the standard provider model.


    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <Examine>

      <ExamineIndexProviders>

        <providers>

          <add name="InternalIndexer" type="UmbracoExamine.LuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

    <add name="IMISearchIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="false"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

        </providers>

      </ExamineIndexProviders>

      <ExamineSearchProviders defaultProvider="InternalSearcher">

        <providers>

          <add name="InternalSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/> 

          <add name="IMISearchSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>          

        </providers>

      </ExamineSearchProviders>

    </Examine>

     

  • Aron Gamble 63 posts 76 karma points
    Sep 14, 2010 @ 15:10
    Aron Gamble
    0

    We're going to go with xsltsearch for our main searcher but may use Examine for an advanced search. What is the issue if i choose to run it with async set to false?

    It works great when it's false but it seems now that with every publish of a node i get more duplicates..

     

  • Aaron Powell 1708 posts 3046 karma points c-trib
    Sep 14, 2010 @ 16:45
    Aaron Powell
    0

    There shouldn't be any problem with running async=false unless you're doing huge publishes (ie - dozens of documents in a single hit) as the response wont end until Umbraco is fully updated.

    The only thing that may be causing problems is you're using different analyzers for indexing to searching. This shouldn't cause the error you're seeing but it's not a good idea to do that.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 15, 2010 @ 04:57
    Shannon Deminick
    0

    Async will cause problems if you are manually re-indexing nodes... you will run into file locks. If not, then non-async will be ok but not recommended.

    You should try to use the codebase from the latest checkin to see if that fixes your problem. There have been some changes to the way that Examine was dealing with case sensitivity and updating a node's index. I'm not sure why non-async would make a difference though.

    Have you looked in the umbraco log table to see if there are any exceptions that Examine is throwing? The only way that i can make sense out of this is that for some reason your 'del' queue files are not being processed, but when you are running non-async they do get processed and/or potentially exceptions are being thrown when not runnning async (because of file locking) which is making it seem like there's no duplicates when there actually is.

    Do you have anything else we should be concerned about with your setup? I.E. load balanced servers, you are using the Examine API, you are binding to Examine events, etc... ?

     

  • Aron Gamble 63 posts 76 karma points
    Sep 15, 2010 @ 08:37
    Aron Gamble
    0

    Shannon

     

    Thanks for the reply - I've looked at the log files are there are loads of these entries:-

    [UmbracoExamine] Error deleting Lucene index,Lock obtain timed out: NativeFSLock@C:\__HOSTING SERVICES\Websites\IMI\Corporate CMS\Site\App_Data\TEMP\ExamineIndexes\IMISearch\Index\write.lock

    and:-

    [UmbracoExamine] Cannot index queue items, another indexing operation is currently in progress,

    We're using Examine out of the box - We're not manually indexing, no load balancing, not binding to Examine events and using the Fluent API like this:-


        string searchCriteria = Request.QueryString["searchCriteria"];

                        var criteria = ExamineManager.Instance.SearchProviderCollection["IMISearchSearcher"].CreateSearchCriteria();

                        var filter = criteria.GroupedOr(new string[] { "nodeName", "content", "rightContent" }, searchCriteria.ToLower().Escape()).Compile();                    

                        SearchResults = ExamineManager.Instance.SearchProviderCollection["IMISearchSearcher"].Search(filter);

                        SearchResultListing.DataSource = SearchResults;

                        SearchResultListing.DataBind();

     

    Thanks

     

    Aron

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 15, 2010 @ 08:59
    Shannon Deminick
    1

    Ok, this is the underlying problem.

    For some reason, you have file locking issues and then a flag is set in Examine that get's 'stuck' on indexing. Here's what you can try:

    Delete your entire Examine folder with all indexes (if you get file lock errors, it means that something is still hanging on to the files, you'll have to bump your web.config file)

    Reset file/folder permissions on App_Data to make sure that the IIS user can read/write/delete (full control)

    Set your indexers to run in async mode.

    Log into Umbraco and publish 1 node... this will re-index all of your content.

    Wait about a minute for the async operations to work.

    Check your umbraco log to see if this error is still occuring.

     

    You're getting duplicate entries in your index because for some reason it can't remove them and running in non-async mode just seems like it's working but in fact its just throwing exceptions.

     

    See if that works.

    Shannon

  • Aron Gamble 63 posts 76 karma points
    Sep 15, 2010 @ 09:20
    Aron Gamble
    0

    Shannon - That's fixed it! We'll be using Examine for our advanced search from now on..

    Many thanks

    Aron

     

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 15, 2010 @ 10:04
    Shannon Deminick
    0

    Awesome!

    Not sure what the root cause could have been, could be a number of things. Make sure you run async though,it is much safer. non-async is good for testing though.

  • Aron Gamble 63 posts 76 karma points
    Sep 15, 2010 @ 10:35
    Aron Gamble
    0

    Spoke to soon - the duplicates are back again...

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 16, 2010 @ 01:18
    Shannon Deminick
    0

    So to confirm:

    You are running async? The error logs are now recurring in the umbracoLog? You are using Examine RC3 (the latest download from CodePlex, not the one shipped with Umbraco 4.5.2) ?

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 16, 2010 @ 06:04
    Shannon Deminick
    0

    If you like, i've packaged up the latest release which you can download here:

    http://shazwazza.com/Content/Downloads/UmbracoExamine.57217.zip

    Please let me know if this works, if so perhaps there's some strange issue with RC3

  • Mirela Budaes 44 posts 94 karma points
    Sep 29, 2010 @ 15:42
    Mirela Budaes
    0

    Did you happen to fix this problem by any chance?

    I have had this for a while now and can't fix it. The old indexes are not deleted. I've tried using the Examine RC3 but nothing changed.

    Thanks.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 01:18
    Shannon Deminick
    0

    Did you not see my previous post? I put a link to a new version for you to try.

    Also, it's pretty hard to track down this 'bug' since it seems as though your environment is the only once that this occurs in. We have Examine running in many sites for the past 2 years and do not have this issue. Please try the version from the link from my previous post and see if that fixes anything. If that doesn't fix your issue, i'll post up the latest build which is pretty much going to be the v1.0 RTM release.

    Cheers,

    Shannon

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 10:52
    Mirela Budaes
    0

    Hi Shanon,

    I had tried using the dlls from the package you posted. I still had multiple results. Same with RC3. For now I made a workaround to only show the results from the latest indexes.

    I am getting this error in umbraco log when the indexes are created: 

    [UmbracoExamine] Error deleting Lucene index,Lock obtain timed out: [email protected]...\Index\write.lock

    which I am guessing is because of RunAsync="true". I don't want to change it to false so for now I'll just use the workaround.

    Btw, I also set the file permission to everything I could think of, but it didn't change anything.

    Thanks for trying to help,

    Mirela.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 11:00
    Shannon Deminick
    0

    Is your setup anything out of the ordinary? i.e. You are running IIS from a UNC share or similar?

    This is a Lucene specific error and is generally caused by UNC/SMB file share issues.

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 11:36
    Mirela Budaes
    0

    I am running IIS from a local computer. I have given user "Everyone" Full control to App_Data and the error is still there, so it must be a Lucene specific error. Do you have some links about that?

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 11:43
    Shannon Deminick
    0

    I've never come across this error before whilst I've been testing. I only have seen it on other forums... you can google it.

    Just to clear one thing up that everyone keeps talking about :

    Running async = false WILL cause problems. It is ONLY for testing should you run async false. async true merely creates a file queue in the 'queue' folder and a timer processes these files in linear succession.

    What do you have your interval set to?

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 11:44
    Shannon Deminick
    0

    Also, is that the only examine error listed in your logs?

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 11:46
    Mirela Budaes
    0

    Now it's 5 seconds. Before it was 30. It didn't make a difference.

    And yes, it is the only error in the log.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 11:49
    Shannon Deminick
    0

    If you delete your entire index, then save a node, does the error return (this will re-index everything).

    perhaps your index has been corrupted somehow?

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 12:18
    Mirela Budaes
    0

    Sorry, I just saw the post now.

    I know that deleting the index recreates it and I've tried that many times (every time I make a change in the code). The error always reappears. :(

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 12:27
    Shannon Deminick
    0

    that is truly strange! You mind posting your Examine config?

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 12:31
    Mirela Budaes
    0

    Of course not.

     <add name="ProjectIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

          indexSet="ProjectIndexSet" supportUnpublished="false" interval="5"

          runAsync="true" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"

          enableDefaultEventHandler="true"/>

    <add name="ProjectSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" indexSet="ProjectIndexSet" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

    <IndexSet SetName="ProjectIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Projects" IndexParentId="1131">

        <IndexAttributeFields>

          <add Name="id" />

          <add Name="nodeTypeAlias" />

        </IndexAttributeFields>

        <IndexUserFields>

          <add Name="title" EnableSorting="true"/>

          <add Name="date" EnableSorting="true"/>

          <add Name="category"/>

          <add Name="IsEnterpriseClient" EnableSorting="true"/>

          <add Name="isimportant" EnableSorting="true"/>

          <add Name="images"/>

          <add Name="website"/>

          <add Name="customer"/>

          <add Name="umbracoNaviHide"></add>

        </IndexUserFields>

        <IncludeNodeTypes>

          <add Name="Project"/>

        </IncludeNodeTypes>

        <ExcludeNodeTypes />

      </IndexSet>

     

    I'm using the WhitespaceAnalyzer, but there were the same results with the StandardAnalyzer.

    At the moment I am using the latest examine download, RC3. But I always had multiple results, no matter which Examine version I used.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 12:36
    Shannon Deminick
    1

    Whitespace analyzer uses whitespace to tokenize strings, whereas the StandardAnalyzer will remove stop words, punctuation, etc... from the string before it indexes/searches on it.

    Can you double check your Lucene.Net version? Just right click on the DLL, select properties and details, it should show you the file version and product version.

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 12:38
    Mirela Budaes
    0

    File version: 2.9.2.2

    Product version: 2.9.2

    Thanks for the tip on Whitespace analyzer.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 12:50
    Shannon Deminick
    1

    Another tip: you don't need to specify the "indexSet" property on your indexers or searchers if everything is named correctly... convention over configuration. Since your indexer, searcher and index set are named properly the system will just wire them up together.

    Are these the only indexes you have in your application? What about the internal index?

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 13:29
    Mirela Budaes
    0

    I haven't put up the umbraco indexes because I haven't changed them. Here they are:

    ---ExamineSettings.config

    <Examine>

      <ExamineIndexProviders>

        <providers>

          <add name="InternalIndexer" type="UmbracoExamine.LuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>     

          <add name="ProjectIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

          indexSet="ProjectIndexSet" supportUnpublished="false" interval="5"

          runAsync="true" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"

          enableDefaultEventHandler="true"/>

     

        </providers>

      </ExamineIndexProviders>

      <ExamineSearchProviders defaultProvider="InternalSearcher">

        <providers>

          <add name="InternalSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberSearcher" type="UmbracoExamine.LuceneExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/>

          <add name="ProjectSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine" indexSet="ProjectIndexSet" analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

        </providers>

      </ExamineSearchProviders>

    </Examine>

     

    ---ExamineIndex.config

    <ExamineLuceneIndexSets>

        <!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->

        <IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields />

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

        <!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->

        <IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">

            <IndexAttributeFields>

                <add Name="id" />

                <add Name="nodeName"/>

                <add Name="updateDate" />

                <add Name="writerName" />

                <add Name="loginName" />

                <add Name="email" />

                <add Name="nodeTypeAlias" />

            </IndexAttributeFields>

            <IndexUserFields/>

            <IncludeNodeTypes/>

            <ExcludeNodeTypes />

        </IndexSet>

     

      <IndexSet SetName="ProjectIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Projects" IndexParentId="1131">

        <IndexAttributeFields>

          <add Name="id" />

          <add Name="nodeTypeAlias" />

        </IndexAttributeFields>

        <IndexUserFields>

          <add Name="title" EnableSorting="true"/>

          <add Name="date" EnableSorting="true"/>

          <add Name="category"/>

          <add Name="IsEnterpriseClient" EnableSorting="true"/>

          <add Name="isimportant" EnableSorting="true"/>

          <add Name="images"/>

          <add Name="website"/>

          <add Name="customer"/>

          <add Name="umbracoNaviHide"></add>

        </IndexUserFields>

        <IncludeNodeTypes>

          <add Name="Project"/>

        </IncludeNodeTypes>

        <ExcludeNodeTypes />

      </IndexSet>

    </ExamineLuceneIndexSets>

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 13:31
    Mirela Budaes
    0

    It is weird that only Project Indexes throw this error. The Internal and InternalMember don't throw it.

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 14:01
    Mirela Budaes
    0

    I also have another index, created by me, called ContentIndexer. It's indexing most of the pages, including nodes of type "Project" (the one in the index that's throwing errors).

    What is weird is that when publishing a content page (not Project) , there is no error thrown for the ContentIndexer and no multiple results. But when I publish a "Project" page, I get errors in both indexes. So it's something related to Project nodes. I am looking into it. I just wanted to let you know.

    These are the configs for Content:

     <add name="ContentIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

          runAsync="true"/>

     <add name="ContentSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

          enableLeadingWildcards="true"/>

    <IndexSet SetName="ContentIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/ContentIndex/">

        <IndexAttributeFields>

          <add Name="id" />

          <add Name="nodeName" />

          <add Name="path"/>

        </IndexAttributeFields>

        <IndexUserFields>

          <add Name="umbracoNaviHide"/>

          <add Name="title"/>

          <add Name="alias"/>

          <add Name="metaTitle"/>

          <add Name="metaKeywords"/>

          <add Name="tags"/>

          <add Name="metaDescription"/>

          <add Name="introduction"/>

          <add Name="bodyText"/>

          <!--team-->

          <add Name="firstName"/>

          <add Name="lastName"/>

          <add Name="email"/>

          <add Name="position"/>

          <add Name="linkedIn"/>

          <add Name="twitter"/>      

          <!--projects-->

          <add Name="customer"/>     

          <!--partners-->

          <add Name="website"/>

        </IndexUserFields>

        <IncludeNodeTypes>

          <add Name="Content"/>

          <add Name="Dienst"/>

          <add Name="Nieuwsbericht"/>

          <add Name="Vacature"/>

          <add Name="Home"/>

          <add Name="Medewerker"/>

          <add Name="Partner"/>

          <add Name="Project"/>

          <add Name="Blank"/>

        </IncludeNodeTypes>

      </IndexSet>

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 14:40
    Shannon Deminick
    0

    ok, just wanted to make sure you didn't have two index sets referencing the same index path.

    this is pretty wierd because you are only gettting one error but you have 3 indexes which leads me to beleive that maybe something is just not right with your index.

    in the error log, it should also reference a node ID for when the error occurred. Is this the same Node ID everytime?

    this is sort of a trial and error thing but can you change your index set to be the same as the internal index set (except keep it in your current folder). Then re-index and see if the error occurs. Unfortunately i'm sort of out of options except for this until we can pinpoint something that makes it break.

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 14:42
    Mirela Budaes
    0

    I removed all fields from the ProjectIndexSet and left only the "id" field and I still get the error. I don't know what it can be so I'm gonna stick to my workaround.

    Thank for the help.

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Sep 30, 2010 @ 14:45
    Shannon Deminick
    0

    what about your parentID reference, if you remove that is it the same?

  • Mirela Budaes 44 posts 94 karma points
    Sep 30, 2010 @ 15:56
    Mirela Budaes
    0

    I removed the parentID - still had errors.

    I changed the indexset values to the one from the Internal Set. It still happens.Sometimes it manages to delete the current index, specially at the beginning of the indexation.

    I checked the logs. They usually look tile this:

     

     

    1137 2010-09-30 15:25:27.410 Custom [UmbracoExamine] Index created for node. (B:\data\MindbusWebsite\trunk\MindbusWebsite2009\MindbusWebsite2009\App_Data\TEMP\ExamineIndexes\ProjectIndex\Index)

    -1 2010-09-30 15:25:27.240 Error [UmbracoExamine] Error deleting Lucene index,Lock obtain timed out: NativeFSLock@B:\data\MindbusWebsite\trunk\MindbusWebsite2009\MindbusWebsite2009\App_Data\TEMP\ExamineIndexes\ProjectIndex\Index\write.lock

    1137 2010-09-30 15:25:27.240 Custom [UmbracoExamine] DocumentWriting event for node (B:\data\MindbusWebsite\trunk\MindbusWebsite2009\MindbusWebsite2009\App_Data\TEMP\ExamineIndexes\ProjectIndex\Index)

    I have a DocumentWriting event that looks like this:

     void projectIndexer_DocumentWriting(object sender, DocumentWritingEventArgs e)
        {     
          if (e.Fields.ContainsKey("category") && !string.IsNullOrEmpty(e.Fields["category"]))
          {
            string name = e.Fields["category"];
            e.Document.Add(new Field("_category", name.ToLower(), Field.Store.YES, Field.Index.NOT_ANALYZED));
          }
        }

    I removed the DocumentWriting event and I had the same result. I even changed the names and nothing changed.

    I don't know what else to do.

     

     

     

     

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Oct 05, 2010 @ 14:46
    Shannon Deminick
    0

    Someone else had posted a bug about duplicates in their index and posted a fix. I'm not sure if this fix will be for your same circumstance but it's definitely worth a try!

    Please download the latest binaries here:

    http://shazwazza.com/content/downloads/UmbracoExamine57697.zip

    PLEASE let me know if this fixes the issue as I'm really wanting to get v1.0 RTM of Examine out and this is the only issue I've heard of for a long time so would like to get to the bottom of it before it's released.

    Cheers,

    Shannon

  • Aron Gamble 63 posts 76 karma points
    Oct 05, 2010 @ 15:32
    Aron Gamble
    0

    Hi

    I've tried the new binaries but now the index won't create at all. I've published numerous nodes, restarted the app pool/site.

    There are no errors in the log.

    Aron

     

  • Aron Gamble 63 posts 76 karma points
    Oct 05, 2010 @ 15:38
    Aron Gamble
    0

    UPDATE - I put the old binaries back and the index created first time after a publish...

     

    Cheers

     

    Aron

     

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Oct 06, 2010 @ 04:00
    Shannon Deminick
    0

    Did you re-build your solution with the new binaries or just drop them into the bin? This is hard to keep track of everyone's case here since everyone is running diff versions with diff events, etc...

    Please first remove from your bin: UmbracoExamine, Examine, Examine.LuceneEngine

    If you have events running or are using the API in c#, please rebuild your solution. These new binaries are NOT 100% backwards compatible. see the release notes here: http://examine.codeplex.com/releases/view/50781

    then retry.

     

     

  • Aron Gamble 63 posts 76 karma points
    Oct 06, 2010 @ 09:50
    Aron Gamble
    0

    Hi

    Thanks for the extra info, I've removed the old binaries, added the new one's and rebuilt my project with no errors.

    I amended the config settings and then republished my site but the indexes still aren't being created. There are no errors in the log file.

    Here is my settings and index files:-

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to add your own search/index providers.

    Index sets can be defined in the ExamineIndex.config if you're using the standard provider model.

     

    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <Examine>

      <ExamineIndexProviders>

        <providers>

          <add name="InternalIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

    <add name="IMISearchIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="false"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

        </providers>

      </ExamineIndexProviders>

      <ExamineSearchProviders defaultProvider="InternalSearcher">

        <providers>

          <add name="InternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/> 

          <add name="IMISearchSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>          

        </providers>

      </ExamineSearchProviders>

    </Examine>

     

    And here is my index file:-

     

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to create your own index sets.

    Index/Search providers can be defined in the UmbracoSettings.config

     

    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <ExamineLuceneIndexSets>

        <!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->

        <IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields />

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

        <!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->

        <IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">

            <IndexAttributeFields>

                <add Name="id" />

                <add Name="nodeName"/>

                <add Name="updateDate" />

                <add Name="writerName" />

                <add Name="loginName" />

                <add Name="email" />

                <add Name="nodeTypeAlias" />

            </IndexAttributeFields>

            <IndexUserFields/>

            <IncludeNodeTypes/>

            <ExcludeNodeTypes />

        </IndexSet>

     

     

        <IndexSet SetName="IMISearchIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/IMISearch/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields>

    <add Name="content" />

    <add Name="rightContent" />

    <add Name="tableContent" />

              <add Name="reportTitle" />

              <add Name="umbracoFile" />

          </IndexUserFields>

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

    </ExamineLuceneIndexSets>

     

    Cheers

    Aron

     

  • Aron Gamble 63 posts 76 karma points
    Oct 06, 2010 @ 10:01
    Aron Gamble
    0

    Hi

    Thanks for the extra info, I've removed the old binaries, added the new one's and rebuilt my project with no errors.

    I amended the config settings and then republished my site but the indexes still aren't being created. There are no errors in the log file.

    Here is my settings and index files:-

     

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to add your own search/index providers.

    Index sets can be defined in the ExamineIndex.config if you're using the standard provider model.

     

    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <Examine>

      <ExamineIndexProviders>

        <providers>

          <add name="InternalIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberIndexer" type="UmbracoExamine.MemberLuceneExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="true"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

    <add name="IMISearchIndexer" type="UmbracoExamine.UmbracoExamineIndexer, UmbracoExamine"

               runAsync="true"

               supportUnpublished="false"

               supportProtected="true"

               interval="10"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net"/>

        </providers>

      </ExamineIndexProviders>

      <ExamineSearchProviders defaultProvider="InternalSearcher">

        <providers>

          <add name="InternalSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>

          <add name="InternalMemberSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.Standard.StandardAnalyzer, Lucene.Net" enableLeadingWildcards="true"/> 

          <add name="IMISearchSearcher" type="UmbracoExamine.UmbracoExamineSearcher, UmbracoExamine"

               analyzer="Lucene.Net.Analysis.WhitespaceAnalyzer, Lucene.Net"/>          

        </providers>

      </ExamineSearchProviders>

    </Examine>

     

    And here is my index file:-

     

     

     

    <?xml version="1.0"?>

    <!-- 

    Umbraco examine is an extensible indexer and search engine.

    This configuration file can be extended to create your own index sets.

    Index/Search providers can be defined in the UmbracoSettings.config

     

    More information and documentation can be found on CodePlex: http://umbracoexamine.codeplex.com

    -->

    <ExamineLuceneIndexSets>

        <!-- The internal index set used by Umbraco back-office - DO NOT REMOVE -->

        <IndexSet SetName="InternalIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/Internal/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields />

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

        <!-- The internal index set used by Umbraco back-office for indexing members - DO NOT REMOVE -->

        <IndexSet SetName="InternalMemberIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/InternalMember/">

            <IndexAttributeFields>

                <add Name="id" />

                <add Name="nodeName"/>

                <add Name="updateDate" />

                <add Name="writerName" />

                <add Name="loginName" />

                <add Name="email" />

                <add Name="nodeTypeAlias" />

            </IndexAttributeFields>

            <IndexUserFields/>

            <IncludeNodeTypes/>

            <ExcludeNodeTypes />

        </IndexSet>

     

     

        <IndexSet SetName="IMISearchIndexSet" IndexPath="~/App_Data/TEMP/ExamineIndexes/IMISearch/">

          <IndexAttributeFields>

            <add Name="id" />

            <add Name="nodeName" />

            <add Name="updateDate" />

            <add Name="writerName" />

            <add Name="path" />

            <add Name="nodeTypeAlias" />

            <add Name="parentID" />

          </IndexAttributeFields>

          <IndexUserFields>

    <add Name="content" />

    <add Name="rightContent" />

    <add Name="tableContent" />

              <add Name="reportTitle" />

              <add Name="umbracoFile" />

          </IndexUserFields>

          <IncludeNodeTypes/>

          <ExcludeNodeTypes />

        </IndexSet>

     

    </ExamineLuceneIndexSets>

     

     

    Cheers

    Aron

     

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Oct 06, 2010 @ 10:06
    Shannon Deminick
    0

    I've pretty much copy and pasted this config into my instance and it seemed to work without a problem.

    Can i ask how you are determining if your indexes are being created or not? Are you using Luke, or are you just determining this based on your searches or some other way?

  • Aron Gamble 63 posts 76 karma points
    Oct 06, 2010 @ 10:18
    Aron Gamble
    0

    Hi

    When i look in the ~/App_Data/TEMP/ExamineIndexes directory the IMISearch directory isn't there and also the update dates for the other indexes isn't changing from yesterday when i put the old binaries back in and it started working again. RC3 worked OK apart from the multiple results issue.

    Aron


  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Oct 06, 2010 @ 10:39
    Shannon Deminick
    0

    This is really weird, I have you're exact same settings and it works without issue. I can also republish, delete, unpublish, etc... nodes and don't end up with any duplicates. Please confirm that the following assemblies are in your bin folder:

    Examine.dll, UmbracoExamine.dll, Lucene.Net.dll

    Also, I've noticed that you are using mixed analyzers for your IMISearch. For your indexer you have specified to use a StandardAnalyzer and for your searcher you are using a WhitespaceAnalyzer. Unless you are certain that this is what you want to do its definitely best not to mix analyzers between your indexing/searching since you'll probably get mixed results.

    You are using Umbraco 4.5.x ? or a different version?

  • Aron Gamble 63 posts 76 karma points
    Oct 06, 2010 @ 11:11
    Aron Gamble
    0

    Hi

    I'm using Umbraco 4.5.2 - I need to deploy the app soon so i'll go with XSLT Search for now and try again with Examine for our next big project.

    Thanks for all your help.

    Aron

     

  • Shannon Deminick 1525 posts 5271 karma points MVP 2x
    Oct 10, 2010 @ 09:29
    Shannon Deminick
    0

    Ok, I think this version will solve everyone's issue. Please download and apply to your projects. You should remove the following DLLs from your bin folder before applying this version just in case there are any conflicts: UmbracoExamine.DLL, Examine.DLL, Examine.LuceneEngine.DLL (not that Examine.LuceneEngine.DLL is no longer relavent in the newer version). Please also re-compile your source with the new version if you are using the API. There are some breaking changes from RC1-3 which are documented on CodePlex.

    You can get the latest version here: http://shazwazza.com/Content/Downloads/UmbracoExamine57796.zip

    Please note: the above ZIP contains the PDF indexer as well.

    You can view the release notes of what will become Examine v1.0 which contains the breaking changes here: http://examine.codeplex.com/releases/view/50781

    Thanks to everyone who helped try to identify these bugs... this was actually quite difficult to track down and replicate and was not based on one single but but a couple which is why some of you had different symptoms. I'm pretty sure this latest version will resolve everything on this thread.

    Please let me know if this does or doesn't work!

    Cheers,

    Shannon

Please Sign in or register to post replies

Write your reply to:

Draft