如何解决使用弹性搜索查询CouchDB中的数组内部
| 我的CouchDB数据库的结构如下:\"custom_details\": {
\"user_education\": [
{
\"device_id\": \"358328030246627\",\"college_name\": \"College\",\"college_year\": \"2014\"
},]
}
\"custom_details_1\": {
\"user_education\": [
{
\"device_id\": \"358328030246627\",]
}
我在数组中有很多数组。我正在尝试使用Elasticsearch搜索和查找术语,无论它位于数组中的什么位置。那可能吗?
我一直在浏览这里的示例,还没有完全找到我想要的东西。我已经尝试过使用PHP包装器Elastica,但是在不完全了解如何使用REST的情况下,我迷路了。甚至可能在不知道该字段的情况下搜索数据?
解决方法
在Lucene中,您可以为每个设备ID创建一个文档实例:
public void indexRecord(CouchDBRecord rec) {
Document doc = new Document();
doc.add(new Field(\"device_id\",rec.device_id,Store.YES,Index.NOT_ANALYZED));
doc.add(new Field(\"college_name\",rec.college_name,Index.ANALYZED));
doc.add(new Field(\"college_year\",rec.college_year.toString(),Index.NOT_ANALYZED));
this.writer.addDocument(doc);
}
这样,您就可以通过大学名称中的关键字,确切的设备ID或年份或它们的某种组合来进行搜索。
,如果您使用的是Elastica,则整个REST工作已经为您完成。如果要在所有字段中搜索,则可以仅定义搜索词,它将在所有字段中搜索。
如果您在使用Elastica时遇到麻烦或缺少某些功能,请告诉我,因为我是Elastica的开发人员。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。