我已经为包含词性(POS)标签的有效载荷的每个单词索引了文档。 我只想搜索那些搜索查询词有那个POS标签的文档。 例如'访问谷歌'有谷歌作为名词。它应该只显示Google的文档作为名词。 可以编写自定义分析器帮助吗? 如何在“相似”类中访问“有效载荷”时访问术语?使用有效载荷和NLP标签进行Lucene搜索
0
A
回答
0
在lucene中进行精确(:google AND:'名词')查询可能会非常棘手......您的查询是什么以及如何将文档写入索引?
0
我会推荐使用跨度查询。跨度查询可以返回一个Spans对象,它允许检查每个匹配令牌的有效负载。
请参阅PayloadTermQuery。
0
您可以使用PayloadAttribute类将标记存储为有效内容,然后覆盖DefaultSimilarity类的scorePayload方法以使用标记。在你的情况下,如果标签内容是名词,你会希望返回1,否则返回零。
下面的代码片段是有用的设置有效载荷信息
String tag = "noun";
byte[] payload = tag.getBytes();
Payload payloadData = new Payload(payload);
payloadAttr.setPayload(payloadData);
现在使用下面的代码行检索过程中尽量使用标签。这必须通过扩展DefaultSimilarity类来完成。
class PayloadSimilarity extends DefaultSimilarity {
...
...
protected float scorePayload(int doc, int start, int end, BytesRef payload) {
String payloadData = payload.utf8ToString();
return payloadData.equals("noun")? 1 : 0;
}
...
...
}
最后,在检索过程中,只需设置您的扩展类的相似性类即可。
searcher.setSimilarity(new PayloadSimilarity());
相关问题
- 1. 在使用lucene索引和搜索过程中添加有效载荷
- 2. Lucene中的有效载荷性能
- 3. Lucene的3.5自定义有效载荷
- 4. 使用Lucene进行树搜索
- 5. 使用Lucene 4.3进行分面搜索
- 6. 关于使用Lucene进行搜索?
- 7. Sitecore:使用lucene进行全文搜索
- 8. 获得在Lucene的4.6.X在搜索结果中的有效载荷
- 9. HttpClient,httppost和有效载荷
- 10. 用java/scala进行Neo4j lucene搜索API
- 11. FTS/Lucene标签模糊搜索
- 12. 搜索使用Lucene
- 13. 使用SearchBar,SearchDisplayController和UITableView进行搜索的有效方法
- 14. 如何使用索引配置tolkenizers并使用Lucene和Nhibernate进行搜索
- 15. 使用Java流进行高效搜索
- 16. 进行搜索标签输入字段
- 17. Laravel:有效载荷无效
- 18. Lucene并行搜索
- 19. Symfony和Lucene搜索
- 20. Lucene的:有效载荷和相似功能---总是相同的负载值
- 21. 什么是“有效载荷”?例如,XML有效载荷
- 22. 使用libpcap解释有效载荷
- 23. Lucene的分析器进行索引和搜索
- 24. 信标有效载荷分析
- 25. 阅读NFC标签上的“有效载荷”数据?
- 26. NLP - 在全文搜索中使用语义通配符进行查询,也许用Lucene?
- 27. 在Lucene中使用变音符号进行索引和搜索法语文本
- 28. 使用Umbraco搜索标签
- 29. 使用Ransack搜索标签
- 30. 使用metawhere搜索标签
但是,这总是会压制动词。 – user2377122