假设我有100个在Lucene中索引的文档。我想搜索“美国航空”这个词。 Lucene运行搜索并返回10个包含术语“美国航空公司”的文件。我现在想要在我的用户界面中浏览这10个文档中的每一个,并自动突出显示/滚动到每个匹配项。这些都是带有唯一id-ed段落标签的html文档,所以我可以使用类似http://docurl#p_120
的内容滚动到<p id="p_120">American Airlines is a big company.</p>
。但是,我如何让Lucene告诉我该术语的段落是什么,以及它究竟在哪里,以便我能够突出它?Lucene能够在文档中找到匹配的位置吗?
0
A
回答
0
你的问题是关于突出显示。你问如何索引一个带有子文档的文本,这样你就可以知道子文档的ID以进行高亮显示。
imho你有三种可能性。但首先让我提醒你,lucene可以使用偏移量(=原始文本中的位置)突出显示 https://lucene.apache.org/core/6_4_0/highlighter/org/apache/lucene/search/highlight/package-summary.html ,并且lucene知道子文档的概念为“被阻止的子文档”或“嵌套文档”或“嵌入的文档”文档”。
树可能性:
- 使用有效载荷来存储相应的子文档的ID任期的每种情况。
- 存储一个术语每次出现的偏移量,并知道一个新的子文档在哪个偏移量开始。将ids与相应的偏移一起存储在额外的字段中,并使用它来查找每个命中的id。
- 将文档连同所有子文档一起索引为块中的额外子文档。搜索与http://lucene.apache.org/core/6_4_0/join/index.html?org/apache/lucene/search/join/ToParentBlockJoinCollector.html
相关问题
- 1. 从Lucene找到搜索匹配的位置
- 2. 在Lucene中围绕位置匹配访问文字
- 3. 在xcode 6中找不到匹配的配置配置文件
- 4. 在lucene索引文档中查找和排列多个短语匹配
- 5. 如何在Mongo和Mongo聚合的文档中找到匹配?
- 6. 在Lucene Solr中检索每个关键字/字段的匹配位置 - 可能吗?
- 7. 如何使用Lucene在单个词语中找到匹配
- 8. 在推文中找到匹配的URL
- 9. 对象能够在列表中告诉自己的位置吗?
- 10. 如何在给定的文档中找到字符串的位置或位置
- 11. 匹配文档
- 12. Lucene:如何根据文档中的位置对文档进行排名
- 13. 如何从Lucene的文档术语矢量中获取位置?
- 14. 如何找到数据中匹配大括号的位置?
- 15. 用户能够访问旧配置文件以及新配置文件吗?
- 16. 无法解决此问题找不到匹配的配置配置文件:找不到与适用的签名身份匹配的配置配置文件
- 17. 加载的DLL能够知道它所在的位置吗?
- 18. 在MongoDB文档中查找匹配的数组项目
- 19. Lucene的匹配得到查询条件
- 20. 在lucene索引的所有文档中查找一个文档的条目
- 21. Apple Watch - 没有找到匹配的Provisionin配置文件
- 22. Xcode 7:“未找到匹配的配置文件”
- 23. 验证失败,“没有找到匹配的配置文件...”
- 24. 找不到与xcode8匹配的配置文件,
- 25. Watchkit扩展 - 没有找到匹配的配置文件
- 26. MongoDB:在数组匹配参数中查找子文档
- 27. Lucene的SpanNearQuery部分匹配
- 28. 轮廓匹配 - 找到轮廓位移
- 29. 如何能够将在Silverlight Word文档?
- 30. 设置Lucene的文档任意ID
见Lucene的[荧光笔API(http://lucene.apache.org/core/6_4_0/highlighter/org/apache/lucene/search/highlight/Highlighter.html)。 – femtoRgon