对于同一个检索条件需要同时做keyword完全匹配、某一到多个分词器的模糊匹配…
那么对于整个query来说,打分、排序啥的是怎么做的呢?
有大佬研究过的可以贴贴答案交流下,没有的话只好等我自己研究完了再过来贴结论了~ :)
用了medcl大佬的IK分词器和我自己前两天弄出来的StanfordNLP分词器,正在搭环境实验Rocky大佬弄的HanLP分词器,突然想到这么一问题
ref:mappings
那么对于整个query来说,打分、排序啥的是怎么做的呢?
有大佬研究过的可以贴贴答案交流下,没有的话只好等我自己研究完了再过来贴结论了~ :)
用了medcl大佬的IK分词器和我自己前两天弄出来的StanfordNLP分词器,正在搭环境实验Rocky大佬弄的HanLP分词器,突然想到这么一问题
ref:mappings
{
"settings": {
"number_of_replicas": 0,
"number_of_shards": 1
},
"mappings": {
"_doc": {
"properties": {
"id": {
"type": "integer"
},
"text": {
"type": "text",
"fields": {
"stanford": {
"type": "text",
"analyzer": "stanford-core-nlp",
"search_analyzer": "stanford-core-nlp"
},
"ik": {
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart",
"type": "text"
}
}
}
}
}
}
}
query{
"query": {
"multi_match": {
"query": "汽车延保值得买吗",
"fields": [
"text",
"text.ik",
"text.stanford"
]
}
}
}
3 个回复
rochy - rochy_he
赞同来自:
对每个字段对查询分别进行打分,然后执行 max 运算获取打分最高的
请参考文章:https://blog.csdn.net/ginobefu ... 61660
端小强 - 90后Java
赞同来自:
参考文档:https://www.elastic.co/guide/e ... .html
God_lockin
赞同来自:
我们是不确定输入的是什么鬼,这个有可能能完全匹配title字段,或者部分匹配content字段,或者部分匹配keyword字段,然鹅前置的搜索语句分析服务会有一套骚操作把原始的query语句分析出一大堆有的没的东西
所以我需要的是对不同的分词甚至query方式综合打分,然后返回一个最佳匹配的顺序回去