【问题标题】:fullText is not working in Parse Server with Mlab [closed]fullText 在 Parse Server 中无法使用 Mlab [关闭]
【发布时间】:2020-03-19 17:49:13
【问题描述】:

我正在使用 Mlab 在 heroku 上运行 parse server(2.8.4)。我试图根据单词匹配进行搜索,但全文抛出错误,这是我的查询:

var query1 = new Parse.Query("SearchTerms");
query1.fullText("searchString", "programmer");

它抛出以下错误:

ParseError {
2019-11-24T03:01:42.421284+00:00 app[web.1]:   code: 1,
2019-11-24T03:01:42.421285+00:00 app[web.1]:   message: {
2019-11-24T03:01:42.421286+00:00 app[web.1]:     name: 'MongoError',
2019-11-24T03:01:42.421287+00:00 app[web.1]:     message: 'text index required for $text query',
2019-11-24T03:01:42.421288+00:00 app[web.1]:     ok: 0,
2019-11-24T03:01:42.421289+00:00 app[web.1]:     errmsg: 'text index required for $text query',
2019-11-24T03:01:42.421290+00:00 app[web.1]:     code: 27,
2019-11-24T03:01:42.421291+00:00 app[web.1]:     codeName: 'IndexNotFound',
2019-11-24T03:01:42.421292+00:00 app[web.1]:     operationTime: '6762703032942592018',
2019-11-24T03:01:42.421293+00:00 app[web.1]:     '$clusterTime': { clusterTime: '6762703032942592018', signature: [Object] }
2019-11-24T03:01:42.421294+00:00 app[web.1]:   }
2019-11-24T03:01:42.421295+00:00 app[web.1]: }

在网上我找到了以下解决方案:

db.collection.createIndex(
   {
     field1: "text",
     field2: "text",
     etc...         
   }
)

但我不知道在哪里放置这段代码。

我们有什么办法可以将此解决方案与mlab一起使用

已按照 @Suat 的指南解决了索引问题

但是新问题来了: 我正在使用 10 或使用 fullText 查询并收到此错误:

    [31merror[39m: Error generating response. ParseError {
2019-11-25T08:46:46.632775+00:00 app[web.1]: code: 1,
2019-11-25T08:46:46.632776+00:00 app[web.1]: message: MongoError: Too many text expressions
2019-11-25T08:46:46.632778+00:00 app[web.1]: at queryCallback (/app/node_modules/mongodb-core/lib/cursor.js:247:25)
2019-11-25T08:46:46.632779+00:00 app[web.1]: at /app/node_modules/mongodb-core/lib/connection/pool.js:531:18
2019-11-25T08:46:46.632781+00:00 app[web.1]: at processTicksAndRejections (internal/process/task_queues.js:75:11) {
2019-11-25T08:46:46.632783+00:00 app[web.1]: name: 'MongoError',
2019-11-25T08:46:46.632784+00:00 app[web.1]: message: 'Too many text expressions',
2019-11-25T08:46:46.632785+00:00 app[web.1]: ok: 0,
2019-11-25T08:46:46.632787+00:00 app[web.1]: errmsg: 'Too many text expressions',
2019-11-25T08:46:46.632788+00:00 app[web.1]: code: 2,
2019-11-25T08:46:46.632789+00:00 app[web.1]: codeName: 'BadValue',
2019-11-25T08:46:46.632791+00:00 app[web.1]: operationTime: Timestamp { bsontype: 'Timestamp', low: 6, high_: 1574671603 },
2019-11-25T08:46:46.632792+00:00 app[web.1]: '$clusterTime': { clusterTime: [Timestamp], signature: [Object] },
2019-11-25T08:46:46.632793+00:00 app[web.1]: [Symbol(mongoErrorContextSymbol)]: {}
2019-11-25T08:46:46.632794+00:00 app[web.1]: }

【问题讨论】:

    标签: parse-platform mlab parse-cloud-code


    【解决方案1】:

    您的问题主要针对 MongoDB 和 mLab。

    1. 打开您的 mLab 仪表板
    2. 选择您的部署
    3. 选择您的数据库
    4. 选择您的收藏

    在集合详细信息页面中,页面顶部有文档、索引、统计信息、工具。

    选择索引并单击“添加索引”按钮将弹出一个屏幕,您可以输入类似的索引

    {
         "job": "text"      
    }
    

    然后单击“在后台创建”按钮。几秒钟后,您的索引将被创建,现在您可以使用 fullText 函数了。

    但请记住

    注意:全文搜索可能会占用大量资源。确保使用索引的成本物有所值,请参阅文本索引的存储要求和性能成本..

    【讨论】:

    • 谢谢@Suat。我已经创建了索引并且它正在工作。但是,在此之后又出现了另一个问题。我在我的问题中添加错误信息
    • stackoverflow.com/questions/29020211/… 的可能重复项如果您的问题已在本主题中解决,请标记我的答案。
    • 嗨@Suit你的答案解决了我的问题是索引但第二个解决方案现在对我有用,实际上我使用的是解析服务器而不是直接mongo所以我不知道我需要在哪里放置解决方案参考问题中提到的
    • 我知道了,但您需要针对该问题打开另一个问题。因为您的新问题与问题标题无关。
    • 是的,我正在放置一个新问题
    猜你喜欢
    • 2019-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2016-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多