我正在使用吗啡。正如你所知道的一个简单的搜索,我可以使用这个:
q.field("fieldname").containsIgnoreCase(texttosearch);
但我的字段类型是地图。所以我必须像这样改变它(使用点):
q.field("mapname.fieldname").containsIgnoreCase(texttosearch);
但我想再次搜索所有领域。我可以通过重复所有字段来简单地做到这一点。问题是我的字段数不是静态的。我该如何解决这个问题?
您不应将其存储为地图,而应将其存储为键/值对的数组/列表。然后您可以搜索关键字段,并将其编入索引。这不是 morphia 目前为您做的事情,而是可能是 Map 的另一种存储格式。这将是一种非常不同的格式。
查看此讨论以获取更多背景信息