2

嗨,我的公司对系统的搜索引擎有非常特殊的需求,但我似乎找不到解决方案。

我们有一个项目的 SOLR 索引,所有项目都有相同的字段,其中一个字段是“类型”,(当然还有“标题”、“文本”等)。

我需要的是:我得到一个项目类型和一个查询字符串,并且我需要返回一个搜索建议列表,每个搜索建议还说明该建议的字符串将返回多少正确类型的项目。

像,如果原始字符串是“goo”,我会得到

谷歌 10 谷歌 52 谷歌 2

等等。

现在,我该怎么做?我不想为每个不同的建议重新查询 SOLR,但如果没有其他方法,我可能会。

提前致谢

4

4 回答 4

2

您可以尝试边缘 n-gram 标记化 http://search.lucidimagination.com/search/document/CDRG_ch05_5.5.6

于 2011-02-07T02:33:45.363 回答
1

你可以试试切面。看看我更详细的描述(“自动完成”)。

这是在http://jetwick.com上使用 Solr 实现的......现在使用 ElasticSearch 但 Solr 源仍然可用,并且这个想法也是相同的https://github.com/karussell/Jetwick

于 2011-02-07T11:40:32.167 回答
0

这是使用带有前缀集的构面字段查询来实现的。您可以使用 xml 处理程序进行测试,如下所示:

http://localhost:8983/solr/select/?rows=0&facet=true&facet.field=type&f.type.prefix=goo
于 2011-02-28T09:37:59.863 回答
0

Solr 的 SpellCheckComponent(给出建议)具有扩展结果,可以给出索引中每个建议的频率 - http://wiki.apache.org/solr/SpellCheckComponent#Extended_Results

但是,.Net 组件 SolrNet 目前似乎不支持 extendedResults 选项:“支持所有 SpellCheckComponent 参数,除了 extendedResults 选项” - http://code.google.com/p/solrnet/wiki/拼写检查

于 2011-02-06T09:04:54.733 回答