我的CouchDB数据库的结构如下:
"custom_details": {
"user_education": [
{
"device_id": "358328030246627",
"college_name": "College",
"college_year": "2014"
},
]
}
"custom_details_1": {
"user_education": [
{
"device_id": "358328030246627",
"college_name": "College",
"college_year": "2014"
},
]
}
我在数组中有很多数组。我正在尝试使用Elasticsearch搜索和查找术语,无论它位于数组中的哪个位置。这可能吗?
我一直在查看here上的示例,但还没找到我正在寻找的内容。我已经尝试使用 Elastica,PHP Wrapper ,但是如果不完全理解如何使用REST做到这一点,我就输了。甚至可以在不知道该字段的情况下搜索数据吗?
答案 0 :(得分:0)
在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, Store.YES, Index.ANALYZED));
doc.add(new Field("college_year", rec.college_year.toString(), Store.YES, Index.NOT_ANALYZED));
this.writer.addDocument(doc);
}
这将允许您按大学名称中的关键字进行搜索,或者按照确切的设备ID或年份或其某种组合进行搜索。
答案 1 :(得分:0)
如果您正在使用Elastica,那么整个REST事情已经为您完成了。如果要搜索所有字段,只需定义搜索字词,它将在所有字段中搜索。
如果您在使用Elastica时遇到麻烦,或者您需要某些功能,请告诉我,因为我是Elastica的开发人员。