如何将 solr 建议组件和请求处理程序 XML 配置属性映射到 JSON 配置 API?



我正在尝试通过配置API配置建议搜索组件和请求处理程序,我需要将XML配置属性映射到JSON Config API请求。

建议搜索组件的 XML 配置:

<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">mySuggester</str>
<str name="lookupImpl">FuzzyLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">suggestTerm</str>
<str name="suggestAnalyzerFieldType">text_suggest</str>
<str name="buildOnStartup">false</str>
</lst>
</searchComponent>

建议请求处理程序的 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>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>

这是我到目前为止尝试过的:

建议在配置 API 中搜索组件 JSON 表示形式:

{
"add-searchcomponent": {
"name": "suggest",
"class": "solr.SuggestComponent",
"defaults": {
"name": "mySuggester",
"lookupImpl": "FuzzyLookupFactory",
"dictionaryImpl": "DocumentDictionaryFactory",
"field": "suggestTerm",
"suggestAnalyzerFieldType": "text_suggest"
}
}
}

建议在配置 API 中搜索处理程序 JSON 表示形式:

{
"add-requesthandler": {
"name": "/suggest",
"class": "solr.SearchHandler",
"startup": "lazy",
"defaults": {
"suggest": true,
"suggest.count": 10,
"suggest.dictionary": "mySuggester",
},
"components": [
"suggest"
]
}
}

我已经尝试了建议处理程序,但收到此错误:

"No suggester named mySuggester was configured"

这是我从配置 API 检索到的当前配置:

https://gist.github.com/stevenferrer/076f3074b376897086cf8a1bd5dbbf79

我错过了什么?

问题是搜索组件部分。我不小心从配置 API 复制了示例

{
"add-searchcomponent": {
...
"defaults": { // this is the issue
...
}
}
}

正确的配置是:

"add-searchcomponent": {
"name": "suggest",
"class": "solr.SuggestComponent",
"suggester": { // from 'default' to 'suggester'
"name": "mySuggester",
"lookupImpl": "FuzzyLookupFactory",
"dictionaryImpl": "DocumentDictionaryFactory",
"field": "suggest",
"suggestAnalyzerFieldType": "text_suggest"
}
}

最新更新