1

我在 Solr 模式中有关键字字段。

<fieldType name="text_keyword" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.SimpleKeywordTokenizerFactory"/>
</analyzer>
</fieldType>

当我尝试使用默认的 solr 查询或 dismax 查询搜索此字段时, category:(Mouse Pad)它会创建查询(category:Mouse) AND (category:Pad)

我想知道如果它是关键字字段左右,是否有办法不通过空格分割术语。

补充:我需要SimpleKeywordTokenizerFactory在查询中分析(小写没有空格分割),所以raw查询term解析器对我不起作用

4

2 回答 2

1

您要输入此查询:

category:"Mouse Pad"

查询语法已经提供了一种方法来做到这一点。引号用于短语。括号意味着不同的东西。如果需要,您可以编写自己的查询解析器,但我不推荐。

于 2012-04-16T20:11:50.873 回答
0

您可以使用TermQParserPlugin

{!term f=category}鼠标垫

请注意,不执行任何分析,因此仅当您的字段的内部表示为“鼠标垫”(带有标题大小写)时,这才有效。

编辑(2012-04-17):

如果您仍然希望执行分析,您需要做的就是通过添加反斜杠来转义空格:

{!lucene}category:鼠标\垫

于 2012-04-16T20:11:38.330 回答