lh12565 2019-07-24 16:55 采纳率: 0%
浏览 83

全文索引返回数据问题

我有如下语句

select count(*) from search where match(tissue,disease,cell_line,other_name) against ('+breast+cancer' IN BOOLEAN MODE) ;

返回726行数据

但是将语句改为

select count(*) from search where match(disease) against ('+breast+cancer' IN BOOLEAN MODE) ;

返回变为94

后面查了下第一个语句disease字段里包含Breast_cancer_high-risk_for_distant_metastasis,但是在第二个语句的disease字段中只有Breast cancer

不知道语句哪里有问题啊?

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 05:41
    关注

    根据你提供的信息,可以得出以下结论:

    1. 第一个语句中使用了多列进行全文索引,包括tissue、disease、cell_line和other_name。而第二个语句中只使用了disease列进行全文索引。如果某个搜索词在其他列中出现的频率比在disease列中更高,那么第一个语句返回的结果会更多。

    2. 在第一个语句中,搜索词"+breast+cancer"在多列中出现的频率更高,因此返回的结果更多。而在第二个语句中,只有disease列中包含该搜索词,因此返回的结果较少。

    3. 在第一个语句中,如果搜索的短语中含有特殊字符或数字,需要使用双引号将其括起来。例如,如果搜索的短语是"+breast+cancer+1",则应该写成""+breast+cancer+1""。

    综上所述,你的语句没有问题,返回结果的差异是由于多列索引与单列索引以及搜索词频率不同造成的。

    评论

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?