SOLR подскажите с контекстной фильтрацией, как изменить алгоритм? - PullRequest
0 голосов
/ 27 ноября 2018

В настоящее время я работаю над функцией автозаполнения / подсказки.Из-за правильного функционирования приложения я вынужден использовать функциональность Context Filtering , и все работает нормально.

Однако у меня проблема с алгоритмом и полученными результатами.Можно ли отобразить предлагаемые результаты из введенного нами слова в соответствии с порядком введенных букв?

solrconfig.xml:

<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
        <lst name="defaults">
          <str name="suggest">true</str>
          <str name="suggest.count">10</str>
          <str name="suggest.dictionary">mySuggester</str>
          <str name="suggest.cfq"></str>
        </lst>
        <arr name="components">
          <str>suggest</str>
        </arr>
  </requestHandler>

  <searchComponent name="suggest" class="solr.SuggestComponent">
      <lst name="suggester">
            <str name="name">mySuggester</str>
            <str name="lookupImpl">BlendedInfixLookupFactory</str>
            <str name="dictionaryImpl">DocumentDictionaryFactory</str>
            <str name="field">title_suggest</str>
            <str name="buildOnStartup">false</str>
            <str name="contextField">suggestionsfilter</str>
            <str name="suggestAnalyzerFieldType">text_general</str>            
      </lst>
  </searchComponent>

Я знаю, что только AnalyzingInfixLookupFactory и BlendedInfixLookupFactory в настоящее время поддерживают подсказку solr с Context Filtering , но, возможно, кто-то из вас изменил конфигурацию и получил результаты, как я хочу, например:

{
    "responseHeader": {
        "status": 0,
        "QTime": 1
    },
    "suggest": {
        "iiifSuggester": {
            "te": {
                "numFound": 1,
                "suggestions": [
                    {
                        "term": "test",
                        "weight": 0,
                        "payload": ""
                    }]}}}
}

Но на самом деле, яполучил что-то вроде этого:

{
    "responseHeader": {
        "status": 0,
        "QTime": 1
    },
    "suggest": {
        "iiifSuggester": {
            "te": {
                "numFound": 1,
                "suggestions": [
                    {
                        "term": "Suggest test result",
                        "weight": 0,
                        "payload": ""
                    }]}}}
}

Большое спасибо за ваш ответ

Kind Regerds, Wojciech

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...