- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们使用 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 ,但我不确定是否/如何存储自定义偏移量。我认为这是一个相当常见的情况......
编辑:经过编辑以明确 Bill 可以在不同文档中引用不同的人/事。
EDIT2:经过编辑以明确文档可以包含同音异义词(具有不同含义的相同字符串)。
最佳答案
两个 Q Monte
解决方案优点:
解决方案的缺点:
使用 Solr 4.8+,您可以在每个主文档(文本)下面嵌套子文档(注释)...
curl http://localhost:8983/solr/update/json?softCommit=true -H 'Content-type:application/json' -d '
[
{
"id": "123",
"text" : "Bill studied The Bill of Rights last summer.",
"content_type": "source",
"_childDocuments_": [
{
"id": "123-1",
"content_type": "source_annotation",
"annotation": "William Brown",
"start_offset": 0,
"end_offset": 4
},
{
"id": "123-2",
"content_type": "source_annotation",
"annotation": "legal term",
"start_offset": 13,
"end_offset": 31
},
{
"id": "123-3",
"content_type": "source_annotation",
"annotation": "summer 2011",
"start_offset": 32,
"end_offset": 43
}
]
}
]
...使用 block 连接来查询注释。
1)注释查询:http://localhost:8983/solr/query?fl=id,start_offset,end_offset&q={!child of=content_type:source}注释:"威廉·布朗”
"response":{"numFound":1,"start":0,
"docs":[
{
"id": "123-1",
"content_type": "source_annotation",
"annotation": "William Brown",
"start_offset": 0,
"end_offset": 4
}
]
}
将这些结果存储在您的代码中,以便您可以在下一个查询返回后折叠注释偏移量。
2)源查询+突出显示:http://localhost:8983/solr/query?hl=true&hl.fl=text&fq=content_type:source&q=text:"William Brown"或 ID:123
(注释查询中发现的 id:123 被或运算到第二个查询中)
"response":{"numFound":1,"start":0,
"docs":[
{
"id": "123",
"content_type": "source",
"text": "Bill studied The Bill of Rights last summer."
}
],
"highlighting":{}
}
注意:在此示例中,没有返回突出显示信息,因为搜索词与任何 content_type:source
文档都不匹配。然而,我们有第一个查询的显式注释和偏移量!
然后,您的客户端代码需要获取第一个查询的 content_type:source_annotation
结果,并手动将突出显示标记插入到第二个查询的 content_type:source
结果中。
有关 Yonik's blog here 的更多 block 加入信息.
关于solr - 卢森/Solr : Store offset information for certain keywords,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34122982/
在应用程序中,我收到一个应用过滤器的文本,我想将此过滤结果存储到 lucene Document 对象中。我不关心原文。 String stringToProcess = "..."; TokenSt
我正在开发一个在大型静态 数据存储库中启用索引搜索的应用程序。这不是服务器-客户端应用程序,其中服务器始终处于运行状态,而是每次按需启动的 native 应用程序。 我想对存储库中的文件进行一次索引,
这就是我想做的事情。我在 Elasticsearch 中有一个包含多个文档的索引。在每个文档中,我都有两个字段:deviceField(设备名称)和pressionField(定期按压的值)。我想在索
我们使用 Solr 来存储带有关键字的文档;每个关键字都与文档中的一个范围相关联。 关键字是在将它们加载到 Solr 之前通过一些花哨的分析和/或手动工作生成的。一个关键字可以在文档中重复多次。另一方
我是一名优秀的程序员,十分优秀!