Ich habe meine Dateien solrconfig.xml und schema.xml konfiguriert, um die Vorschläge abzufragen.Wie wird die Suggester-Komponente in SolrNet eingesetzt?
Ich bin in der Lage, die Vorschläge aus der URL
http://localhost:8080/solr/collection1/suggest?q=ha&wt=xml
Mein SolrConfig.xml zu erhalten sieht aus wie
Curently sieht Meine solr Abfrage wie
<fields>
<!-- declare fields of entity class -->
<!-- type will specify the table name -->
<field name="type" type="string" indexed="true" stored="true" />
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="name" type="text_general" indexed="true" stored="true" omitNorms="true"/>
<field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
<field name="_version_" type="long" indexed="true" stored="true"/>
<!-- unique field -->
<field name="uid" type="uuid" indexed="true" stored="true" />
</fields>
<uniqueKey>uid</uniqueKey>
<copyField source="name" dest="text"/>
<types>
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
<fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>
<fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
.....
</types>
Und mein schema.xml sieht so aus
<searchComponent name="suggest" class="solr.SpellCheckComponent">
<!-- a spellchecker built from a field of the main index -->
<lst name="spellchecker">
<str name="name">suggest</str>
<str name="field">name</str>
<str name="classname">org.apache.solr.spelling.suggest.Suggester</str>
<str name="lookupImpl">org.apache.solr.spelling.suggest.tst.TSTLookup</str>
<str name="buildOnCommit">true</str>
<str name="distanceMeasure">internal</str>
<float name="accuracy">0.5</float>
<int name="maxEdits">2</int>
int name="minPrefix">1</int>
<int name="maxInspections">5</int>
<int name="minQueryLength">4</int>
<float name="maxQueryFrequency">0.01</float>
<float name="thresholdTokenFrequency">.01</float>
</lst>
<!-- a spellchecker that can break or combine words. See "/spell" handler below for usage -->
<lst name="spellchecker">
<str name="name">wordbreak</str>
<str name="classname">solr.WordBreakSolrSpellChecker</str>
<str name="field">name</str>
<str name="combineWords">true</str>
<str name="breakWords">true</str>
<int name="maxChanges">10</int>
</lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="df">text</str>
<!-- Solr will use suggestions from both the 'default' spellchecker
and from the 'wordbreak' spellchecker and combine them.
collations (re-written queries) can include a combination of
corrections from both spellcheckers -->
<str name="spellcheck">true</str>
<str name="spellcheck.dictionary">suggest</str>
<!--<str name="spellcheck.dictionary">wordbreak</str>-->
<str name="spellcheck">on</str>
<str name="spellcheck.extendedResults">true</str>
<str name="spellcheck.count">10</str>
<str name="spellcheck.alternativeTermCount">5</str>
<str name="spellcheck.maxResultsForSuggest">5</str>
<str name="spellcheck.collate">true</str>
<str name="spellcheck.collateExtendedResults">true</str>
<str name="spellcheck.maxCollationTries">10</str>
<str name="spellcheck.maxCollations">5</str>
</lst>
<arr name="last-components">
<str>spellcheck</str>
</arr>
</requestHandler>
Jedoch 210
Mein Code der SolrNet API aufrufen sieht wie unten
new SolrBaseRepository.Instance<T>().Start();
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<T>>();
var options = new QueryOptions
{
FilterQueries = new ISolrQuery[] { new SolrQueryByField("type", type) }
};
var results = solr.Query(keyword, options);
return results;
, ich bin keine Daten zu bekommen. Ergebnisse zählen ist Null. Und auch die Rechtschreibprüfung in den Ergebnissen ist gleich null.
Ich sehe auch nicht die Vorschlagsliste in den Ergebnissen.
Bitte helfen
Ich habe wie vorgeschlagen Änderungen vorgenommen, bekomme aber immer noch keine Ergebnisse – Prasad
Welche Werte verwenden Sie für das Schlüsselwort und den Typ in Ihrer SolrNet-Abfrage? Außerdem haben Sie dieselbe Abfrage direkt gegen Solr ausgeführt. Ich sehe aus Ihrer Frage, dass Sie eine mit 'q = ha 'ausführen. Versuchen Sie, die Filterabfrage hinzuzufügen, um sicherzustellen, dass sie wie erwartet funktioniert ... Das könnte der Fall sein, wenn Sie den Suggester verwenden, den Sie nicht filtern möchten die Abfrageergebnisse ... –