【发布时间】:2016-03-16 11:37:25
【问题描述】:
这个问题感觉和这里发布的一个老问题非常相似:Retrieve analyzed tokens from ElasticSearch documents,但是为了看看是否有任何变化,我认为对于最新版本的 ElasticSearch 再次发布它是有意义的。
我们正在尝试使用 search-query 和 field-mapping 使用 ElasticSearch 内置的 snowball 词干分析器在 ElasticSearch 中搜索文本正文.性能和结果都很好,但是因为我们需要为后期分析提供词干文本主体,所以我们希望搜索结果返回搜索结果中每个文档的文本字段的实际词干标记。
该字段的映射当前如下所示:
"TitleEnglish": {
"type": "string",
"analyzer": "standard",
"fields": {
"english": {
"type": "string",
"analyzer": "english"
},
"stemming": {
"type": "string",
"analyzer": "snowball"
}
}
}
并且搜索查询是专门针对 TitleEnglish.stemming 执行的。理想情况下,我希望它返回该字段,但返回的不是返回分析的字段而是返回原始字段。
有没有人知道有什么方法可以做到这一点?我们查看了Term Vectors,但它们似乎只能用于单个文档或文档主体,而不是搜索结果?
或者也许像 Solr 或 Sphinx 等其他解决方案确实提供此选项?
添加一些额外的信息。如果我们运行以下查询:
GET /_analyze?analyzer=snowball&text=Eight issue of Industrial Lorestan eliminate barriers to facilitate the Committees review of
它返回词干词:eight、issu、industri 等。这正是我们希望为文本中所有词的每个匹配文档返回的结果(所以不仅仅是匹配)。
【问题讨论】:
-
那么,您链接到的问题中的解决方案对您不起作用?他们出了什么问题?
-
术语向量答案不是实际的解决方案(如上所述)。
-
是的,我看到了,但它没有向我解释任何事情。如果不是文档,搜索结果是什么?
-
在我们的情况下,搜索结果是一组文档(例如:8000 个文档),我们不想单独提取这些文档的术语向量,因为这对于实际来说过于密集-时间分析。
标签: elasticsearch lucene nlp