0

我正在将 solr 与 liferay 集成,我想实现智能的下一个单词建议器。例如,如果我的文件标题如下:

  • Solr是世界上最好的搜索引擎
  • Solr 在 lucene 搜索引擎上实现
  • Solr 是全球 80% 的开发人员用作搜索引擎的 lucene
  • lucene 不需要在应用服务器上单独安装进行搜索实现

所以如果我输入Solr,我应该得到以下结果:

  1. 索尔
  2. solr lucene
  3. Solr 搜索
  4. 太阳能引擎
  5. 太阳能世界

等等

如果我输入lucene,我应该得到以下结果:

  1. Lucene
  2. Lucene 搜索
  3. Lucene 引擎
  4. Lucene 世界

等等

我尝试了很多示例并且它们有效,但我面临以下问题:

  • 如果我从前缀Solr开始,建议有效,如果我开始输入任何中间词,它就不起作用
  • 我得到完整的句子而不是下一个最佳匹配词。

请帮忙。提前致谢 :)

4

2 回答 2

0

您可以使用构面为该领域构建“最流行的其他词”。忽略与您正在搜索的单词同名的构面,并为该单词添加 a fq(以将其限制为与您的单词匹配的文档子集)。对您正在搜索的每个单词执行此操作(即solr在生成的方面列表中忽略并添加fq=title:solr到查询中)。

下一步是fq=title:solr AND title:lucene跳过solrlucene在方面列表中。

这假设您正在适当地标记您的字段(例如使用 StandardTokenizer 或 WhitespaceTokenizer),以便为每个单词获得一个标记。

于 2014-08-22T20:14:55.753 回答
0

AnalyzingInfixLookupFactory 如果你也输入中间词会给你建议,希望能回答你的第一个问题

于 2016-02-04T10:15:36.280 回答