mirror of https://github.com/mongodb/mongo
36 lines
1.2 KiB
JavaScript
36 lines
1.2 KiB
JavaScript
load("jstests/libs/fts.js");
|
|
|
|
t = db.text_parition1;
|
|
t.drop();
|
|
|
|
t.insert({_id: 1, x: 1, y: "foo"});
|
|
t.insert({_id: 2, x: 1, y: "bar"});
|
|
t.insert({_id: 3, x: 2, y: "foo"});
|
|
t.insert({_id: 4, x: 2, y: "bar"});
|
|
|
|
t.ensureIndex({x: 1, y: "text"});
|
|
|
|
assert.throws(function() {
|
|
const cursor = t.find({"$text": {"$search": "foo"}});
|
|
if (db.getMongo().readMode() === "legacy") {
|
|
// In legacy read mode, calling next() will check if the response to the OP_QUERY message
|
|
// has an error.
|
|
cursor.next();
|
|
} else {
|
|
// In commands read mode, calling hasNext() will check if the find command returned an
|
|
// error. We intentionally do not call next() to avoid masking errors caused by the cursor
|
|
// exhausting all of its documents.
|
|
cursor.hasNext();
|
|
}
|
|
});
|
|
|
|
assert.eq([1], queryIDS(t, "foo", {x: 1}));
|
|
|
|
res = t.find({"$text": {"$search": "foo"}, x: 1}, {score: {"$meta": "textScore"}});
|
|
assert(res[0].score > 0, tojson(res.toArray()));
|
|
|
|
// repeat "search" with "language" specified, SERVER-8999
|
|
res = t.find({"$text": {"$search": "foo", "$language": "english"}, x: 1},
|
|
{score: {"$meta": "textScore"}});
|
|
assert(res[0].score > 0, tojson(res.toArray()));
|