2016-02-05 24 views
2

我试图为查询条件实现一个简单的自动完成。 有许多不同的方法,但他们大多数确实会返回文档而不是条款 - 或者作者仅仅停止从那一点解释,我无法适应。Elasticsearch - 自动完成返回单词/术语/令牌建议,而不是整个文档

用户正在输入查询 - 例如, 菲尔 我要的是提供的期限完成建议列表像菲利普,philius,费城,...

我能够获得通过的文件(边缘)的n-gram,phrase_prefix等相匹配但我被困在检索匹配条件(完成建议)。

有人可以给我一个提示吗?

我有这样的文档{“title”:“...”,“description”:“...”,“content”:“...”} 所有字段都有较大的字符串值,字段内容包含全文内容。

我不想建议包含例如文档的整个标题。费城。只是“费城”一词。

+0

嗨,只是为了确定;你有没有试过https://www.elastic.co/guide/en/elasticsearch/reference/current/search-suggesters-completion.html? – aclokay

+0

我曾尝试完成建议。但它只返回预定义的输出(或使用输入作为输出)。但是,由于我正在处理全文文件,所以建议时间太长。 ...或者我错过了什么?我只需要获取术语建议。 – Philipp

回答

0

寻找那样的东西,我自己。

在SOLR中,使用solr.SpellCheckComponent进行配置相对比较简单(尽管构建并保持最新状态很痛苦)。不知何故,在SOLR和ElasticSearch之间使用相同的底层Lucene功能,并且在ElasticSearch中,它适合寻找整个文档(或者整个字段值,如果您愿意的话)或者它似乎...

尽管“ elasticsearch自动完成“的文章,似乎没有处理这个特定的问题。就像它不存在一样。也许他们的用例是不同的,ElasticSearch适用于他们就好了,谁知道呢?

在这一点上我认为准备的确切字段值与ElasticSearch自动完成使用(是的,这就是输入字段值,不分析令牌)可能解决问题的唯一途径。这很糟糕,因为表现会很低。

+0

由于你的回答并没有真正回答这个问题,所以最好作为对帖子的评论而不是回答。只是为了您的意见/答案向前思考。 –

+0

我的代表低于允许发表评论的阈值。 – bitterman0

+0

对于我准备确切的自动完成值(输出值)不是一个选项,因为我正在处理每个单词可能成为自动填充建议的巨大文档正文。将自动填充字段Token化似乎不起作用:-( – Philipp

相关问题