Indexing 基于句子而不是整个字段值构建Solr建议

Indexing 基于句子而不是整个字段值构建Solr建议,indexing,solr,lucene,search-engine,solr5,Indexing,Solr,Lucene,Search Engine,Solr5,我有一个带有suggester组件的Solr实例。使用AnalyzingInfixLookupFactory实现,它工作正常 但是,我想将建议扩展到一个内容字段,该字段可以包含大量文本。建议者可以找到建议,但它返回整个字段值,而不仅仅是一个句子或句子的一部分 因此,如果我想要一个关于“foo”的建议,content字段包含如下文本: “我真的很喜欢比萨饼。还有甜甜圈。让我们从另一个地方去买一些。那家食品酒吧。” 建议将全文,而不仅仅是“foo bar place”。显然,当内容有数百个单词时,这

我有一个带有suggester组件的Solr实例。使用
AnalyzingInfixLookupFactory
实现,它工作正常

但是,我想将建议扩展到一个
内容
字段,该字段可以包含大量文本。建议者可以找到建议,但它返回整个字段值,而不仅仅是一个句子或句子的一部分

因此,如果我想要一个关于“foo”的建议,
content
字段包含如下文本:

“我真的很喜欢比萨饼。还有甜甜圈。让我们从另一个地方去买一些。那家食品酒吧。”

建议将全文,而不仅仅是“foo bar place”。显然,当
内容
有数百个单词时,这就不是usabe了

有没有办法限制建议返回的字数

这是我的搜索组件:


自动完成
解析固定查找工厂
建议
文档字典工厂
建议
文本建议
假的
假的
标签
下面是请求处理程序:


真的
自动完成
10

我认为您可能正在寻找的是solr.ShingleFilterFactory,它只允许根据字数限制标记大小,而不是像您一直尝试使用的solr.NGramFilterFactory中那样限制文本长度。
有关更多详细信息,请参见SOLR wiki页面:

内容的字段类型是什么样的?相应地更新了问题。您可以添加一些样本数据吗?您所说的“样本数据”是什么意思?我的例子是“我真的很喜欢比萨饼。还有甜甜圈。让我们买一些…”还不够吗?我是否理解正确:你总是希望这个短语被返回?在您的示例中,您显示返回“建议”单词之前的单词。当有人在句子中键入最后一个单词时,你期望得到什么?(例如示例中的“place”)另一个快速问题:字段内容是否可以是多值的?谢谢。我会看一看的。不幸的是,它似乎不起作用。它仍然暗示很长的短语,而不仅仅是句子。