如何对部分Elasticsearch查询进行全文搜索匹配

时间:2019-06-04 12:54:43

标签: laravel elasticsearch

我将Elasticsearch与Laravel结合使用,我实现了所有功能,并且它可以与简单的匹配查询一起使用,例如上面的代码。

   apiVersion: serving.knative.dev/v1alpha1
   kind: Service
   metadata:
     name: revenue-serv
     namespace: default
   spec:
     runLatest:
       configuration:
         revisionTemplate:
           spec:
             container:
               image: "eu.gcr.io/rcup-mza-dev/knative-spring:latest"

我收到了类似查询“ java”的良好结果,同时收到了“ javascript”和“ nativjavascript”,但是问题在于接收短语式结果。

我想输入查询“ java react”,并希望收到以下结果: “ java”,“ javascript”,“ javascript reactjs”,“ reactjs”,“ react”,“ nativjavascript”。

1 个答案:

答案 0 :(得分:2)

我不熟悉Laravel,因此无法为您提供确切的语法,但可以告诉您该方法以及我如何在应用程序中解决此用例。

  1. 在您可搜索的字段上创建一个基于n-gram的分析器,该分析器将根据您配置的n-gram拆分令牌。
  2. space的情况下,根据java react划分搜索词,应分为2个搜索词javareact
  3. 在搜索字段上将关键字分析器用作search_time分析器。