Mah*_*ore 5 java lucene elasticsearch
我已经将一组json对象存储到lucene索引中,并且还希望从索引中检索它.我正在使用lucene-3.4.
那么在lucene中是否有任何库或简单的机制来实现这一点.
对于示例:Json对象
{
BOOKNAME1: {
id:1,
name:"bname1",
price:"p1"
},
BOOKNAME2: {
id:2,
name:"bname2",
price:"p2"
},
BOOKNAME3: {
id:3,
name:"bname3",
price:"p3"
}
}
Run Code Online (Sandbox Code Playgroud)
任何形式的帮助将不胜感激.提前致谢,
小智 9
我建议你通过以下方式索引你的json对象:
1)解析你的json文件.我通常使用json简单.
2)使用IndexWriterConfig打开索引
3)将文档添加到索引中.
4)提交更改并关闭索引
5)运行您的查询
如果你想使用Lucene Core而不是elasticsearch,我已经创建了一个示例项目,它将一个带有JSON对象的文件作为输入,并创建一个Index.另外,我添加了一个测试来查询索引.
我使用的是最新的Lucene版本(4.8),请看这里:
http://ignaciosuay.com/getting-started-with-lucene-and-json-indexing/
如果你有时间,我认为值得阅读"Lucene in Action".
希望能帮助到你.
如果您不想在 json 中搜索而只想存储它,您只需要提取 id,它有望是唯一的。那么你的 lucene 文档将有两个字段:
一旦你将你的 json 存储在 lucene 中,你就可以通过 id 来检索它。
另一方面,这几乎是elasticsearch对您的文档所做的。您只需通过 REST api 向它发送一些 json。elasticsearch 将保持 json 原样,并使其默认可搜索。这意味着您可以通过 id 检索 json 或搜索它,开箱即用,而无需编写任何代码。
此外,使用 lucene,直到您提交文档或重新打开索引阅读器,您的文档才可用,而 elasticsearch 为其添加了一个方便的事务日志,因此GET始终是实时的。
此外,elasticsearch 还提供了更多功能:良好的分布式基础架构、分面、脚本编写等等。一探究竟!
| 归档时间: |
|
| 查看次数: |
7448 次 |
| 最近记录: |