【问题标题】:Searching by multiple fields using meteor-easy-search使用meteor-easy-search按多个字段搜索
【发布时间】:2015-08-10 08:24:39
【问题描述】:

我正在尝试使用 meteor-easy-search 通过两个 db 字段实现搜索 包,但是,我似乎找不到这样做的方法。问题来了:

我有一个架构:

{
  name: String,
  location: String
}

我的表单上有两个输入字段:

<input type="text" name="name">
<input type="text" name="location">

EasySearch 提供了一种仅按单个值进行搜索的方法:

 EasySearch.search('people', name, .....

有没有办法可以将对象传递给搜索方法,以便我可以在 EasySearch.createSearchIndex() 中编写自己的“查询”?

此外,我需要将“位置”转换为地理螺旋索引并搜索“此位置半径内的名称”

我知道这可以直接使用 MongoDB 或 ElasticSearch 完成,但如果可能的话,我想使用 meteor-easy-search。

【问题讨论】:

    标签: search meteor


    【解决方案1】:

    meteor-easy-search documentation,您可以在EasySearch.createSearchIndex() 调用中初始化默认查询,还可以添加几个搜索字段,如下所示:

    EasySearch.createSearchIndex('people', {
      'field' : ['name', 'location'],
      'collection' : People,
      'limit' : 20,
      'use' : 'elastic-search'
      'props' : {
        'anyField' : true
      },
      'query' : function (searchString, opts) {
        // Default query that is used for searching
        var query = EasySearch.getSearcher(this.use).defaultQuery(this, searchString);
    
        return query;
      }
    });
    

    【讨论】:

    • 对,这是什么让我只搜索“名称”和“位置”数据库字段中的一个输入字段,但我需要在各自的数据库字段中搜索两个输入字段。
    • 你得到这个问题的答案了吗?我也在寻找解决方案..谢谢
    猜你喜欢
    • 2021-12-06
    • 1970-01-01
    • 2018-08-18
    • 2018-06-06
    • 2010-10-16
    • 1970-01-01
    • 2012-10-29
    • 2013-09-12
    • 1970-01-01
    相关资源
    最近更新 更多