小编ArT*_*TiX的帖子

模糊搜索词组/多项

我需要对一组单词进行模糊搜索(而不仅仅是单个术语).

我的数据库表有很多字符串,包含一个或多个单词,我需要找到最适合搜索的单词组.

例如:

我搜索"pommes de terre",它应该给出"pomme de terre",并且得分较低,"pomme","terre"或任何可能匹配的术语.

对于单个术语,它可以完美地工作,并纠正错字和重大错误.但是,如果我搜索多个术语,单个术语的分数要比完全匹配的分数和单词组要好:

搜索:"pomme de terre"

  • poire,得分:2.3862941
  • pomme,得分:2.2527628
  • pomme de terre,得分:1.1263814 < - 不够高

有没有一个解决方案可以让更多的术语匹配更好的分数?(模糊术语匹配越多,分数越高)

设置

搜索查询:

{query: 
    {fuzzy_like_this: 
        { like_text: 'pomme de terre'}
    }
}
Run Code Online (Sandbox Code Playgroud)

设置:

:analysis => {
    :analyzer => {
        :folding => {
            :tokenizer => "icu_tokenizer",
            :filter => [ "icu_folding"]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我是初学者,使用elasticsearch-rails.我尝试使用建议查询,但它们不能用于rails gem.

我必须确切地说,这次搜索是我项目的重要组成部分......

elasticsearch

7
推荐指数
1
解决办法
748
查看次数

Oauth2提供商(门卫?)是Oauth2消费者(Devise + OmniAuth)的登录用户

Oauth2让我发疯.

目前,由于Devise和OmniAuth的美丽,我的Rails应用程序通过Facebook和其他Oauth2提供商对用户进行身份验证.用户无法使用登录名和密码登录.

但由于我的应用程序主要是一个API,我还希望它充当Oauth2提供程序,以保护数据.

因此,用户使用Facebook登录 - >我的应用程序获取访问令牌,然后 - >为用户提供新的访问令牌以访问我的API - >我的AngularJS应用程序(或任何其他应用程序)使用此令牌访问我的API不知道Facebook或谷歌访问令牌.看起来我需要使用自定义提供程序将Oauth2令牌转发给客户端.

我发现了门卫宝石......但我无法理解如何用Devise&Omniauth表达它.

我在这里找到了许多部分答案,但不完整.

我将感谢任何帮助,良好的教程或更完整的答案.

ruby-on-rails devise oauth-2.0 omniauth doorkeeper

4
推荐指数
1
解决办法
3123
查看次数