首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DisMax查询解析器未运行

DisMax查询解析器未运行
EN

Stack Overflow用户
提问于 2022-06-27 10:35:41
回答 1查看 85关注 0票数 0

环境- solr-8.9.0

.csv文件形式中的电影数据已经在apache中进行了索引。

电影数据

代码语言:javascript
复制
name,directed_by,genre,type,id,initial_release_date
.45,Gary Lennon,Black comedy|Thriller|Psychological thriller|Indie film|Action Film|Crime Thriller|Crime Fiction|Drama,,/en/45_2006,2006-11-30
9,Shane Acker,Computer Animation|Animation|Apocalyptic and post-apocalyptic fiction|Science Fiction|Short Film|Thriller|Fantasy,,/en/9_2005,2005-04-21
Bomb the System,Adam Bhala Lough,Crime Fiction|Indie film|Coming of age|Drama,,/en/bomb_the_system,
movie_name,Adam Bhala,Animation|Indie film|Coming of age|Drama,,/en/bomb_the_system,

DisMax查询分析器已在“directed_by”字段上运行。“directed_by”字段在托管模式中映射为“text_general”字段类型。

我已经在solr上运行了以下查询

代码语言:javascript
复制
curl -G http://localhost:8983/solr/testCore1/select --data-urlencode "q=directed_by:'Adam Bhala Lough~'" --data-urlencode "defType=dismax" --data-urlencode "mm=2"

但是上面的查询给出了0 'numFound‘作为响应。我期望以下字段与之匹配:

代码语言:javascript
复制
Adam Bhala
Adam Bhala Lough

我希望以下字段不匹配:

代码语言:javascript
复制
Adam Gary Lennon

尽管数据是在solr中索引的。我通过在没有disMax查询解析器的情况下运行以下查询对此进行了反复检查,并且它给出了响应。

代码语言:javascript
复制
curl -G http://localhost:8983/solr/testCore1/select --data-urlencode "q=directed_by:'Adam Bhala Lough~'"

为什么dismax查询解析器没有按应有的方式运行?我知道mm(最小应该匹配) Parameter===>定义了必须匹配的最小子句数。

我花了好几个小时来解决这个问题。然而,我似乎找不到任何握住我手的东西。有人能帮我找到丢失的那块吗?

参考https://solr.apache.org/guide/8_9/the-dismax-query-parser.html

How to use disMax query parser in solr

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-27 13:20:01

您需要使用qf (查询字段)参数来指定应该在哪个字段中执行搜索,以及(可选地)用于增加或降低该字段在查询中的重要性的助推因子(默认值为1):

代码语言:javascript
复制
q=Adam Bhala Lough~
qf=directed_by

或者,使用edismax查询解析器而不是dismax,以便您所使用的标准查询语法(directed_by:'Adam Bhala Lough~')能够按预期工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72770675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档