Katta docId 到文档

发布于 2024-10-21 07:43:14 字数 193 浏览 4 评论 0原文

如何在Katta中使用FieldCache,FieldCache需要IndexReader作为参数,然后如何从Katta API获取IndexReader。在katta中,LuceneClient.java中的search方法返回Hits。 从中我可以获得列表,从中我可以获得每个命中的 docId,但我需要 Katta 中 docId 的特定字段值。请给我一些编码示例。

How to use FieldCache in Katta, FieldCache expects IndexReader as arguments, then how to get IndexReader from Katta API. And In katta the search method in LuceneClient.java returns Hits.
From this I can get List, from that I can able to get each hit's docId, but I need particular field value of the docId in Katta. Please give me some coding example.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

dawn曙光 2024-10-28 07:43:14

我从未使用过 Katta,我使用过 Solr,如果我必须通过其 id 获取文档并且我必须仅使用 Lucene 类,我会使用 org.apache.lucene.search.IndexSearcher:

// when you figure out how to get IndexReader using Katta API, you'll be able to get the searcher
IndexSearcher searcher = new IndexSearcher(indexReader);
org.apache.lucene.document.Document doc = searcher.doc(docId);
String yourFieldValue = doc.get("yourFieldName");

I've never worked with Katta, I worked with Solr and if I had to get document by its id and I had to use only Lucene classes, I'd use org.apache.lucene.search.IndexSearcher:

// when you figure out how to get IndexReader using Katta API, you'll be able to get the searcher
IndexSearcher searcher = new IndexSearcher(indexReader);
org.apache.lucene.document.Document doc = searcher.doc(docId);
String yourFieldValue = doc.get("yourFieldName");
山色无中 2024-10-28 07:43:14

您不能在客户端使用 FieldCache,因为 IndexReader 位于服务器端!
但是您可以通过 LuceneClient 上的 getDetails() 方法获取字段值。

final Hits hits = client.search(query, new String[] { INDEX_NAME }, 10);
for (final Hit hit : hits.getHits()) {
  final MapWritable details = client.getDetails(hit, new String[] { "path" });
  details.get(new Text("path"));

华泰
约翰内斯

you can't use the FieldCache on client side, since the IndexReader is located on the server side!
But you can get field-values through the getDetails() method on LuceneClient.

final Hits hits = client.search(query, new String[] { INDEX_NAME }, 10);
for (final Hit hit : hits.getHits()) {
  final MapWritable details = client.getDetails(hit, new String[] { "path" });
  details.get(new Text("path"));

HTH
Johannes

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文