C# Lucene查询以排除文档,但不排除部分匹配的文档

C# Lucene查询以排除文档,但不排除部分匹配的文档,c#,.net,lucene,C#,.net,Lucene,假设我有一组文档,如下所示: 梅赛德斯 梅赛德斯卡车 有没有办法创建一个查询来过滤梅赛德斯而不是梅赛德斯卡车?您是否尝试过: +卡伯兰:梅赛德斯*-卡伯兰:梅赛德斯 (当然也可以是任何字段名)。 还是基于具体的例子,我过于简化了?如果您需要“梅赛德斯卡车”这个短语,那么您的查询就可以 “梅赛德斯卡车” 如果您需要单词mercedes和trucks,那么您的查询可以是 +梅赛德斯+卡车 或 梅赛德斯和卡车 这些查询自然会过滤掉不包含单词trucks的文档 编辑: 除非这是关键字/未分类字段。在

假设我有一组文档,如下所示:

  • 梅赛德斯
  • 梅赛德斯卡车
有没有办法创建一个查询来过滤梅赛德斯而不是梅赛德斯卡车?

您是否尝试过:

+卡伯兰:梅赛德斯*-卡伯兰:梅赛德斯

(当然也可以是任何字段名)。 还是基于具体的例子,我过于简化了?

如果您需要“梅赛德斯卡车”这个短语,那么您的查询就可以

“梅赛德斯卡车”

如果您需要单词mercedes和trucks,那么您的查询可以是

+梅赛德斯+卡车

梅赛德斯和卡车

这些查询自然会过滤掉不包含单词trucks的文档

编辑:
除非这是关键字/未分类字段。在这种情况下,只有第一个示例有效。

我需要两个结果:“梅赛德斯”和“梅赛德斯卡车”返回。所以它们是未加密的(我需要空格)。你是说你需要Lucene文档中返回的字段中的空格吗?如果您标记该字段并将其存储在lucene中,它仍然会返回带有空格的值。我没有标记字段,因为我需要空格。好的,我会标记字段。不知道为什么不可能?老实说,我想不出其他解决办法。