Java 如何在mongodb数组字段上进行全文搜索?

Java 如何在mongodb数组字段上进行全文搜索?,java,mongodb,search,full-text-indexing,Java,Mongodb,Search,Full Text Indexing,Hi my Mongo db字段如下: "_id" : ObjectId("51d582be7a8d51bd29ca78a3"), "Filename" : "sample.pdfe", "Title" : null, "Author" : null, "ContentType" : "application/x-msdownload; format=pe32", "url" : "Z:sample.

Hi my Mongo db字段如下:

        "_id" : ObjectId("51d582be7a8d51bd29ca78a3"),
        "Filename" : "sample.pdfe",
        "Title" : null,
        "Author" : null,
        "ContentType" : "application/x-msdownload; format=pe32",
        "url" : "Z:sample.pdf",
        "Keywords" : ["php","java",".net","python"]
下面是我对索引字段进行全文搜索的代码

m = new Mongo("10.0.0.26", 27017);
DB db = m.getDB("soft") ;
DBCollection col = db.getCollection("metadatanew") ;
String collection = col.toString();
DBObject searchCmd = new BasicDBObject();
searchCmd.put("text", collection); 
searchCmd.put("search", name); 

CommandResult commandResult = db.command(searchCmd);

BasicDBList results = (BasicDBList)commandResult.get("results");

for (Iterator <Object> it = results.iterator();it.hasNext();)
{
    BasicDBObject result  = (BasicDBObject) it.next();
    BasicDBObject dbo = (BasicDBObject) result.get("obj");
    System.out.println(dbo.getString("Filename"));
}
我已经在文件名和关键字上创建了文本索引,但我只能在文件名上进行全文搜索,如果我的代码中有任何错误,请帮助我

ensureIndex函数的第二个参数是options。应在两个字段上创建唯一索引:

db.metadatanew.ensureIndex( { "Keywords" : "text", "Filename" : "text"} )
请参阅更多:

ensureIndex函数的第二个参数是options。应在两个字段上创建唯一索引:

db.metadatanew.ensureIndex( { "Keywords" : "text", "Filename" : "text"} )
请参阅更多:


在两个字段上创建唯一索引的另一种方法:

BasicDBObject basicDBObject = new BasicDBObject();
basicDBObject.append("Keywords", "text");
basicDBObject.append("Filename", "text");
dbCollection.createIndex(basicDBObject);

在两个字段上创建唯一索引的另一种方法:

BasicDBObject basicDBObject = new BasicDBObject();
basicDBObject.append("Keywords", "text");
basicDBObject.append("Filename", "text");
dbCollection.createIndex(basicDBObject);