You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Shalin Shekhar Mangar (JIRA)" <ji...@apache.org> on 2008/06/22 14:11:44 UTC

[jira] Issue Comment Edited: (SOLR-604) SpellCheckComponent builds the index in a path relative to CWD

    [ https://issues.apache.org/jira/browse/SOLR-604?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12607086#action_12607086 ] 

shalinmangar edited comment on SOLR-604 at 6/22/08 5:09 AM:
---------------------------------------------------------------------

The bug lies in AbstractLuceneSpellChecker#initIndex method which uses FSDirectory.getDirectory directly on the spellcheckIndexDir specified in the solrconfig.xml

This patch adds a method SolrResourceLoader#getDataDir() which returns SolrCore.getDataDir(). The SolrResourceLoader keeps a reference to SolrCore.getDataDir() during inform phase before informing other core-aware classes. The AbstractLuceneSpellChecker class checks if the specified directory is non-null and is relative then it uses SolrResourceLoader#getDataDir() + File.separator + spellcheckIndexDir as the index directory for spellchecker. Also I've added a test in SpellCheckComponentTest for this.

The other way would have been to modify the SolrSpellChecker#init method to pass in a SolrCore instead of a SolrResourceLoader object but I did not want to change the public signature.

      was (Author: shalinmangar):
    The bug lies in AbstractLuceneSpellChecker#initIndex method which uses FSDirectory.getDirectory directly on the spellcheckIndexDir specified in the solrconfig.xml

This patch adds a method SolrResourceLoader#getDataDir() which returns SolrCore.getDataDir(). The SolrResourceLoader keeps a reference to SolrCore.getDataDir() during inform phase before informing other core-aware classes. The AbstractLuceneSpellChecker class checks if the specified directory is non-null and is relative then it uses SolrResourceLoader#getDataDir() + File.separator + spellcheckIndexDir as the index directory for spellchecker.

The other way would have been to modify the SolrSpellChecker#init method to pass in a SolrCore instead of a SolrResourceLoader object but I did not want to change the public signature.
  
> SpellCheckComponent builds the index in a path relative to CWD
> --------------------------------------------------------------
>
>                 Key: SOLR-604
>                 URL: https://issues.apache.org/jira/browse/SOLR-604
>             Project: Solr
>          Issue Type: Bug
>          Components: spellchecker
>    Affects Versions: 1.3
>            Reporter: Shalin Shekhar Mangar
>            Priority: Trivial
>             Fix For: 1.3
>
>         Attachments: SOLR-604.patch
>
>
> SpellCheckComponent builds the spell check index inside the current working directory instead of inside the dataDir specified in solrconfig.xml
> It should use the same behavior as the SpellCheckerRequestHandler which is to build the spellcheckIndexDir inside of dataDir.
> To reproduce this behavior use the following config:
> {code:xml}
>  <lst name="spellchecker">
>       <str name="classname">org.apache.solr.spelling.FileBasedSpellChecker</str>
>       <str name="name">external</str>
>       <str name="sourceLocation">spellings.txt</str>
>       <str name="characterEncoding">UTF-8</str>
>       <str name="spellcheckIndexDir">spellchecker2</str>
>     </lst>
> {code}
> The index is created in the CWD/spellchecker2 whereas it should build it inside ${solr.data.dir}/spellchecker2
> First reported at http://www.nabble.com/SpellCheckComponent%3A-No-file-based-suggestions-%2B-Location-issue-p18048785.html

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.