I'm testing out the various auto-complete functionalities on the
wikipedia dataset.

I first tried the facet.prefix and found it slow at times. I'm now
looking at the Suggester component. Given a query like "new york", I
would like to get results like "New York" or "New York City".

When I tried using the suggest component, it suggest entries for each
word rather then phrase(even if i add quotes). How can I change my
config to get title matches and not have the query broken into each
word?

<lst name="spellcheck">
<lst name="suggestions">
<lst name="new">
<int name="numFound">5</int>
<int name="startOffset">0</int>
<int name="endOffset">3</int>
<arr name="suggestion">
<str>newt</str>
<str>newwy patitta</str>
<str>newyddion</str>
<str>newyorker</str>
<str>newyork–presbyterian hospital</str>
</arr>
</lst>
<lst name="york">
<int name="numFound">5</int>
<int name="startOffset">4</int>
<int name="endOffset">8</int>
<arr name="suggestion">
<str>york</str>
<str>york–dauphin (septa station)</str>
<str>york—humber</str>
<str>york—scarborough</str>
<str>york—simcoe</str>
</arr>
</lst>
<str name="collation">newt york</str>
</lst>
</lst>

/solr/suggest?q=new%20york&omitHeader=true&spellcheck.count=5&spellcheck.collate=true

solrconfig.xml:
  <searchComponent name="suggest" class="solr.SpellCheckComponent">
   <lst name="spellchecker">
    <str name="name">suggest</str>
    <str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
    <str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
    <str name="field">title_autocomplete</str>
    <str name="buildOnCommit">true</str>
   </lst>
  </searchComponent>

  <requestHandler name="/suggest"
class="org.apache.solr.handler.component.SearchHandler">
   <lst name="defaults">
    <str name="spellcheck">true</str>
    <str name="spellcheck.dictionary">suggest</str>
    <str name="spellcheck.count">10</str>
   </lst>
   <arr name="components">
    <str>suggest</str>
   </arr>
  </requestHandler>

schema.xml:
    <fieldType name="text_auto" class="solr.TextField">
     <analyzer>
      <tokenizer class="solr.KeywordTokenizerFactory"/>
      <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
    </fieldType>

   <field name="title_autocomplete" type="text_auto" indexed="true"
stored="false" multiValued="false" />


-- 
Tommy Chheng

Reply via email to