【问题标题】:CodeIgniter MongoDB text search part of wordCodeIgniter MongoDB 文本搜索部分单词
【发布时间】:2017-06-14 18:36:15
【问题描述】:

以下列表在我的收藏中。字段名称是带有文本索引的 list_name。

  1. DEMOSTAT 200 MG 平板电脑 SR
  2. DEMOWIN 200 MG 平板电脑 SR
  3. DEMOBEST OD 200MG 平板电脑
  4. DEMOBEST SR 200MG 平板电脑
  5. DEMOCHEK 200MG 平板电脑 SR
  6. DEMOKIND -SR 200MG 平板电脑

下面是我的查询

$arraySch = array('$text'=>array('$search'=>"\"DEMO\" \"200\""));

$arrData = $this->mongo_db->where ($arraySch)->get('list');

以下两个列表只来了

  • DEMOSTAT 200 MG 平板电脑 SR
  • DEMOWIN 200 MG 平板电脑 SR

下面不来

  • DEMOBEST OD 200MG 平板电脑
  • DEMOBEST SR 200MG 平板电脑
  • DEMOCHEK 200MG 平板电脑 SR
  • DEMOKIND -SR 200MG 平板电脑

让我知道为什么? 并且没有结果到下面的搜索

$arraySch = array('$text'=>array('$search'=>"\"DEMOB\""));

【问题讨论】:

  • 使用 MongoDB 文本搜索无法正常工作。 POLO 应该匹配“POLOBEST P 100MG/500MG TABLET”这个但不匹配。当我用“POLOBEST”搜索然后匹配上面
  • 默认文本搜索不做部分单词,您需要使用正则表达式匹配。

标签: mongodb mongodb-query


【解决方案1】:
$search_text = 'DEMO';
$search_details = $this->mongo_db->select('*')->like('list_name',$search_text,'i', true, true)->get('list');

【讨论】:

  • 请解释一下你的答案
猜你喜欢
  • 2022-12-22
  • 1970-01-01
  • 2022-12-05
  • 2011-08-12
  • 2017-12-03
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
相关资源
最近更新 更多