我们使用Solr来存储带有关键字的文档; 每个关键字都与文档中的范围相关联.
在将它们加载到Solr之前,关键字是由一些花哨的分析和/或手工工作产生的.关键字可以在文档中重复多次.另一方面,单个文档中相同字符串的不同实例可以与不同的关键字连接.
例如,本文档
Bill studied The Bill of Rights last summer.
可以附带以下关键字(括号中的偏移量):
William Brown (0:4) legal term (13:31) summer 2011 (32:43)
(显然在其他文件中,比尔可以提到比尔克林顿或比尔盖茨.同样,去年夏天将在不同的文件中提到不同的年份.我们确实拥有所有这些文件的所有信息.)
我知道文档可以有一个字段,比如KEYWORD,它将存储William Brown
.然后当我搜索时,William Brown
我会得到上面的文件.那部分很容易.
但我不知道如何存储与William Brown
文本范围相对应的信息,0:4
因此我可以突出显示第一个Bill
,但不是第二个.
我以为我可以使用TermVectors,但我不确定是否/如何存储自定义偏移量.我认为这是一个相当常见的情况......
编辑:编辑,以明确比尔可以参考不同文件中的不同人/事.
EDIT2:编辑以明确文档可以包含同音异义词(具有不同含义的相同字符串).