我目前正在研究搜索引擎。我是用php / mongodb做的。
新功能Full Text Search在很大程度上完成了这项工作,但我遇到了这种情况。
这是一个例子:
我搜索"Pizza -restaurant"
(我是法国人,但这些话是透明的)
对于负面条款,有很多“餐馆”的文件被删除。
但是里面还有3或4个带有“餐厅”的文件。
在这些文件中,“餐馆”就像任何其他词。它与空间分开,没有特殊的特征。它以大写字母书写。 (但大写似乎不是原因)
如果有帮助,调试字符串为"[queryDebugString] => pizza||restaur||||"
以下是未删除的文档示例:
BAR - RESTAURANT LE ST MICHAL CAMPAGNARD, BAR - RESTAURANT LE ST MICHAL
或
HOTEL - RESTAURANT rd 1120 19460 auberge de la route Spécialités gastronomiques du terroir
编辑:以下是执行搜索的命令:
$result = $this->_dbLocal->command(
array(
'text' => 'boutique', //this is the name of the collection where we are searching
'search' => $q, //the string to search
// 'language' => 'french',
'limit' => 500,
)
);
编辑:通过一些测试,否定词在搜索和索引中与language: none
配合得很好。但是对于language: none
,我的搜索不再使用停用词了,这非常有用......
除了负面条款之外,还有什么方法可以使用停用词吗? :/
感谢您的时间!
吉勒。
答案 0 :(得分:0)
在同一问题上与mongodb-user thread交叉引用此内容。这被确认为SERVER-11994中的一个错误,并且已经在2.5.5和即将发布的2.6版本中得到修复。