|
8
|
| Grundlefleck anujkk · 技术社区 · 16 年前 |
|
|
1
1
是的-Lucene在一个文件中记录匹配项的偏移量,这样可以用来确定在索引内容中需要查找匹配项的位置。
有一个Lucene。突出显示为您完成这项确切任务的附加组件-尝试
this article
关于stackoverflow还有几个关于点击突出显示的问题(其中许多问题是为与web应用程序一起使用而定制的,因此也可以做一些类似于周围匹配单词的事情
更新: 根据您搜索索引的方式,您可能也会发现将大文档拆分为较小的部分(例如章节)是一个好主意,但这更是一个关于您希望如何组织、优先排序和向最终用户展示结果的问题。 例如,假设一个用户搜索“foo”,并且有两本书包含这个术语。第一本书(A册)可能包含两个章节,每个章节都有许多对“foo”的引用,但是在书的其余部分中几乎没有提到这个术语,但是第二本书(B册)包含了许多对“foo”的引用,但是它们分散在整本书中。如果你按书索引,那么你可能会发现书B是第一个点击,但是按章索引你可能会发现书A的两个章节是前两个点击,后面是书B的章节。 最后,很明显,用户在索引中的每个匹配文档都会收到一个点击-如果你想向用户展示一个匹配书籍的列表,那么很明显是逐本索引,但是你可能会发现向用户展示一个匹配章节的列表更为合适,在这种情况下,显然是逐章索引。 |
|
|
2
0
一种方法是用一本书创建多个文档。这些文件可以代表书籍、章节或诗歌。因为文本不需要是唯一的,所以我会这样做。 这样,创世记第一章的第一节经文将被索引四次:在整个圣经中,在创世记的第一章经文中,作为经文。 这里的一个微妙之处就是检索的确切目标: 是否只在用户上下文中显示搜索关键字?在这种情况下,考虑使用Lucene highlighter . 如果您需要进一步使用检索(例如,将检索到的指针指向一个章节或一节,并在文本中的这个位置进行一些处理),我将按照前面描述的那样使用更细粒度的文档。 |