indexing - Rebuilding the Screwturn wiki search index -


my wiki started returning incomplete search results.

a user search term know part of article , article isn't returned in results.

they can browse article , see page contain search term.

this has happened frequently, i've been trying find solution. haven't been able find having problem. search index thinks there 300 pages in wiki, though there 1193.

i followed directions on screwturn site rebuilding index, including adjusting timeout in web.config. ended several attempted rebuilds , around 70 errors between attempts. saw timeout errors , primary key violations. rebuild wouldn't stay running long, less 10 minutes.

has had success rebuilding index?

has seen same sort of errors , been able resolve them?

does know can expect see when rebuild complete? thinking see new search index referenced 1193 pages, instead of 300. correct?

any appreciated.

below 3 examples of error messages seeing.

system.data.sqlclient.sqlexception: violation of unique key constraint 'uq_indexdocument'. cannot insert duplicate key in object 'dbo.indexdocument'. statement has been terminated. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.internalexecutenonquery(dbasyncresult result, string methodname, boolean sendtopipe) @ system.data.sqlclient.sqlcommand.executenonquery() @ screwturn.wiki.plugins.sqlcommon.sqlclassbase.executenonquery(dbcommand command, boolean close, boolean logerror)  system.data.sqlclient.sqlexception: timeout expired. timeout period elapsed prior completion of operation or server not responding. statement has been terminated. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.internalexecutenonquery(dbasyncresult result, string methodname, boolean sendtopipe) @ system.data.sqlclient.sqlcommand.executenonquery() @ screwturn.wiki.plugins.sqlcommon.sqlclassbase.executenonquery(dbcommand command, boolean close, boolean logerror)  system.data.sqlclient.sqlexception: violation of primary key constraint 'pk_indexdocument'. cannot insert duplicate key in object 'dbo.indexdocument'. statement has been terminated. @ system.data.sqlclient.sqlconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.sqlinternalconnection.onerror(sqlexception exception, boolean breakconnection) @ system.data.sqlclient.tdsparser.throwexceptionandwarning(tdsparserstateobject stateobj) @ system.data.sqlclient.tdsparser.run(runbehavior runbehavior, sqlcommand cmdhandler, sqldatareader datastream, bulkcopysimpleresultset bulkcopyhandler, tdsparserstateobject stateobj) @ system.data.sqlclient.sqlcommand.finishexecutereader(sqldatareader ds, runbehavior runbehavior, string resetoptionsstring) @ system.data.sqlclient.sqlcommand.runexecutereadertds(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, boolean async) @ system.data.sqlclient.sqlcommand.runexecutereader(commandbehavior cmdbehavior, runbehavior runbehavior, boolean returnstream, string method, dbasyncresult result) @ system.data.sqlclient.sqlcommand.internalexecutenonquery(dbasyncresult result, string methodname, boolean sendtopipe) @ system.data.sqlclient.sqlcommand.executenonquery() @ screwturn.wiki.plugins.sqlcommon.sqlclassbase.executenonquery(dbcommand command, boolean close, boolean logerror) 

(update 7/30) tried deleting indexdocument records , ran rebuild again, ended same results. index did not increase in size. viewed records on indexdocument table , stop in m articles of 1 of namespaces. explains why searches fail against words starting after m. also, 2 of namespaces being indexed. watched admin home page while index being rebuilt , waited wheels stop spinning. nothing seemed change. checked system log , didn't see errors. restarted application admin home page, timeout error appeared in log again. leaves me more questions answers.

  1. what indicator index has been rebuilt, or index has stopped rebuilding? thought spinning wheels run after rebuild link has been clicked.

  2. i've researched timeout error , points timeout value that's short , forum posts update timeout value in .net code, or adjust query wait property on server. has had success , did do?

  3. does know script being run wiki rebuild index? possible run manually sql server?

update: had give on finding answers. did learn can force index rebuild 1 article @ time updating particles not listed in indexdocument table. while work, results in unexpected behavior when viewing allpages page whichever namespace you're in. allpages page lists articles (and letter each section) alphabetically. once did forced update, allpages page display pages in alphabetical order, order of sections similar "#, a, b". next batch of pages "b, c, k" , on. hardly ideal, search work again. fyi else having probles, there workaround. have final solution wiki going retired , moved more robust (and supported!) knowledge base. dreamwalker , doug.

check page no page content , delete these pages - fixed index.

g   system  page ontime-tools created g   wkrzystek   page update requested ontime-tools e   sql server pages storage provider+system    system.data.sqlclient.sqlexception: transaction (process id 173) deadlocked on lock resources process , has been chosen deadlock victim. rerun transaction. e   sql server pages storage provider+system    page indexing error ontime-tools (skipping page): system.nullreferenceexception: object reference not set instance of object. e   system  http://websrv01/matrixwiki/edit.aspx system.web thrown system.web.httpunhandledexception e   system  pagecontent not retrieved page ontime-tools - returning empty     

we had same problem - had 510 of 670 pages in our index , content stopped after "o". couldn't find other solutions started going through sql log table. noticed page added there sql deadlock trying store page content. after set of errors, every time page modified , index trying update, generated "pagecontent not retrieved" message , index stopped there.


Comments

Popular posts from this blog

java - Jmockit String final length method mocking Issue -

asp.net - Razor Page Hosted on IIS 6 Fails Every Morning -

c++ - wxwidget compiling on windows command prompt -