Hi,
I'm not quite sure on what you mean when you are saying that the
suggestions are coming from a dictionary instead of the index.

In your example, which looks okay, the suggestion will come from the the
reader which is reading from your index.

One thing I noticed, when you are creating the term, you should analyze the
string with the same analyzer you used for indexing the "contents" field.

On Tue, Jul 30, 2013 at 4:49 PM, Ankit Murarka <
ankit.mura...@rancoretech.com> wrote:

> Hello.
>
> Using DirectSpellChecker is not serving my purpose. This seems to return
> word suggestions from a dictionary whereas I wish to return search
> suggestion from Indexes I created supplying my own Files (These files are
> generally log files).
>
> I created indexes for certain files in D:\\Indexes and the field name is
> "content"
>
> Then I used DirectSpellChecker and provided IndexReader argument to it.
> Invoked SuggestSimilar function and SuggestWords array as the output.
> Iterated over the array .
>
> I seem to get suggested words from the dictionary and not from the indexes.
>
> Code Snippet for the search part:
>
> String index="D:\\Indexes";
> String field = "contents";
> IndexReader reader = DirectoryReader.open(**FSDirectory.open(new
> File(index)));
> DirectSpellChecker dsc=new DirectSpellChecker();
> Term term1=new Term(field, "Amrih");
> SuggestWord[] suggestWord=dsc.**suggestSimilar(term1, 10, reader);
> if(suggestWord!=null && suggestWord.length>0)
>         {
>             for(SuggestWord word:suggestWord)
>             {
>                 System.out.println("Did you Mean  "  + word.string );
>             }
>
>         }
>         else
>         {
>             System.out.println("No Suggestions found");
>         }
>
>
> Please guide. Basically the suggested words should be provided from the
> indexes I have created.. It should not come from any dictionary.. Is it
> possible ?
>
>
>
> On 7/29/2013 9:34 PM, Varun Thacker wrote:
>
>> Hi,
>>
>>
>> On Mon, Jul 29, 2013 at 4:36 PM, Ankit Murarka<
>> ankit.mura...@rancoretech.com>  wrote:
>>
>>
>>
>>> Since I am new to this, I can't stop exploring it and trying to use
>>> different features.
>>>
>>> I am now trying to implement "Did you Mean " search using SpellChecker
>>> jar
>>> and Lucene jar.
>>>
>>> The problem I faced are plenty although I have got it working..
>>>
>>> code snippet:
>>>
>>> File dir = new File("D:\\Inde\\");
>>> Directory directory = FSDirectory.open(dir);
>>> SpellChecker spellChecker = new SpellChecker(directory);
>>> String wordForSuggestions = "aski";
>>> Analyzer analyzer=new CustomAnalyzerForCaseSensitive**
>>> **(Version.LUCENE_43);
>>>
>>>   //This analyzer only has commented LowerCaseFilter.
>>> IndexWriterConfig iwc = new IndexWriterConfig(Version.****LUCENE_43,
>>>
>>> analyzer);
>>> IndexWriter writer = new IndexWriter(directory, iwc);
>>> File file1=new File("D:\\Inde\\wordlist.txt")****;
>>> indexDocs(writer,file1);
>>> writer.close();
>>> spellChecker.indexDictionary(
>>> new PlainTextDictionary(new File("D:\\Inde\\wordlist.txt")****), iwc,
>>>
>>> false);
>>> int suggestionsNumber = 10;
>>> String[] suggestions = spellChecker.
>>> suggestSimilar(****wordForSuggestions, suggestionsNumber);
>>> if (suggestions!=null&&  suggestions.length>0) {
>>>
>>>
>>>              for (String word : suggestions) {
>>>
>>>                  System.out.println("Did you mean:" + word + "");
>>>
>>>              }
>>>
>>>          }
>>> else {
>>>
>>>              System.out.println("No suggestions found for
>>> word:"+wordForSuggestions);
>>>
>>>          }
>>>
>>> The code works fine. It suggest me 10 possible matches.
>>> Problem is here I am creating/updating indexes everytime.
>>>
>>> Say suppose I have 1000 log files and these files are indexed in
>>> D:\\LogIndexes. Instead of reading a standard dictionary and building up
>>> indexes, I wish to use these indexes to suggest me possible match..
>>>
>>> Is it possible to do?. If yes, what can be the approach. Please provide
>>> some assistance.
>>>
>>>
>>>
>>
>>   Check out DirectSpellChecker (
>> http://lucene.apache.org/core/**4_3_1/suggest/org/apache/**
>> lucene/search/spell/**DirectSpellChecker.html<http://lucene.apache.org/core/4_3_1/suggest/org/apache/lucene/search/spell/DirectSpellChecker.html>
>>   )
>>
>> Using DirectSpellChecker you do not need to build a separate spell index,
>> instead using the actual index for spell suggestions.
>>
>>
>>
>>
>>
>>> Next question would be to suggest a phrase. If I enter "Head ach heav" ,
>>> then I should get "Head ache heavy" as one possible suggestion. haven't
>>> tried it yet but surely will be an absolute beauty to have it..
>>>
>>>
>>>
>> DirectSpellChecker works on a term so there is no feature which will give
>> you suggestions on a phrase out of the box.
>>
>> You might want to take each term of the query and check for spell
>> mistakes,
>> and then combine them back again. You could look up the code from
>> Solr.SpellCheckComponent.**addCollationsToResponse
>>
>> http://wiki.apache.org/solr/**SpellCheckComponent#**spellcheck.collate<http://wiki.apache.org/solr/SpellCheckComponent#spellcheck.collate>
>>
>> http://svn.apache.org/repos/**asf/lucene/dev/trunk/solr/**
>> core/src/java/org/apache/solr/**handler/component/**
>> SpellCheckComponent.java<http://svn.apache.org/repos/asf/lucene/dev/trunk/solr/core/src/java/org/apache/solr/handler/component/SpellCheckComponent.java>
>>
>>
>>
>>
>>
>>
>>> Also examples available on net for "Did you mean" are very very old and
>>> API have undergone significant changes thus making them not so very
>>> useful.
>>>
>>>
>>> --
>>> Regards
>>>
>>> Ankit Murarka
>>>
>>> "Peace is found not in what surrounds us, but in what we hold within."
>>>
>>>
>>> ------------------------------****----------------------------**
>>> --**---------
>>> To unsubscribe, e-mail: java-user-unsubscribe@lucene.****apache.org<
>>> java-user-**unsubscr...@lucene.apache.org<java-user-unsubscr...@lucene.apache.org>
>>> >
>>> For additional commands, e-mail: java-user-help@lucene.apache.****org<
>>> java-user-help@lucene.**apache.org <java-user-h...@lucene.apache.org>>
>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> Regards
>
> Ankit Murarka
>
> "Peace is found not in what surrounds us, but in what we hold within."
>
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> java-user-unsubscribe@lucene.**apache.org<java-user-unsubscr...@lucene.apache.org>
> For additional commands, e-mail: 
> java-user-help@lucene.apache.**org<java-user-h...@lucene.apache.org>
>
>


-- 


Regards,
Varun Thacker
http://www.vthacker.in/

Reply via email to