的整数倍值

问题描述:

这里如何搜索/过滤器是我的JSON ....的整数倍值

[{ 
    "course_id": 1, 
    "courseintakes": "Trimester 1; Trimester 2; Trimester 3" 
}, { 
    "course_id": 2, 
    "courseintakes": "Trimester 1; Trimester 2" 
}, { 
    "course_id": 3, 
    "courseintakes": "Trimester 2; Trimester 3" 
}, { 
    "course_id": 4, 
    "courseintakes": "Trimester 1; Trimester 3" 
}, { 
    "course_id": 5, 
    "courseintakes": "Trimester 3" 
}] 

我所试图做的是,当有人在孕中期1或第二学期搜索,它应该返回当然ID为1,2,3和4,但不是5.

如果孕中期1或孕期3有人搜索,它应该与ID 1,2,3,4和5

返回路线我试过terms querymatch query

terms query不返回任何结果。 match query返回结果,但它不够精确。

有人可以请告知什么是最好的方法来做到这一点?

感谢

+0

请分享映射和ES版本 – Richa

+0

现在所有排序...在这里找到完整的解决方案https://*.com/questions/44227658/elasticsearch-pattern-analyser-not-working – Slyper

你可以分享你的弹性查询 理想应该是

{ 
    "size": <size>, 
    "_source": <fields to retrieve>, 
    "query": { 
     "terms": { 
      "courseintakes": [<query_terms>, <query_terms>] 
     } 
    } 
} 

使用_source过滤掉返回的字段。 也检查你有什么映射。理想情况下,你应该有非分析领域的课程,如果你想分析领域,然后考虑创建自己的分析仪为领域courseintakes分裂词的基础上“;”

+0

@KuldeepKRishi我做了自定义分析器,请参阅我前两天提出的类似问题https://*.com/questions/44149335/elasticsearch-filtering-matching-multiple-phrases – Slyper