Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在`solr'中查找仅包含搜索词的文档`_Solr_Phrase - Fatal编程技术网

如何在`solr'中查找仅包含搜索词的文档`

如何在`solr'中查找仅包含搜索词的文档`,solr,phrase,Solr,Phrase,例如,我有一个solr集合,其中包含一个名为“key\u phrase”的字段的文档 我知道在搜索查询中很容易找到包含所有搜索词的所有文档。(即在edismax中使用mm=100%) 然而,我要问的是如何返回其“关键字短语”只包含搜索词而不包含其他内容的文档。该“关键字短语”也是一个多值字段 例如: 搜索查询:“儿童足球装备” 查询将返回以下文档,其“关键字短语”字段包含:“儿童足球”。 它还将返回具有两个“关键字短语”值的文档,例如“kids gear”和“任何其他单词”,因为其中一个不包含任

例如,我有一个
solr
集合,其中包含一个名为“key\u phrase”的字段的文档

我知道在搜索查询中很容易找到包含所有搜索词的所有文档。(即在
edismax
中使用
mm
=100%)

然而,我要问的是如何返回其“关键字短语”只包含搜索词而不包含其他内容的文档。该“关键字短语”也是一个多值字段

例如: 搜索查询:“儿童足球装备” 查询将返回以下文档,其“关键字短语”字段包含:“儿童足球”。 它还将返回具有两个“关键字短语”值的文档,例如“kids gear”和“任何其他单词”,因为其中一个不包含任何不在搜索查询中的单词


另一方面,它不会返回包含“儿童足球装备男孩””的文档,因为此文档包含搜索查询中不存在的“男孩”

您可以尝试使用
ShingleFilterFactory对字段进行索引

e、 g


你可以在这里查阅


如果您将输入作为

在:
“未来,还是什么?”

要筛选的标记器:
“to”(1)、“be”(2)、“or”(3)、“what”(4)


答案:
“To”(1),“be”(1),“be”(2),“be or”(2),“or”(3),“or what”(3),“what”(4)

你的问题到底是什么???知道你迄今为止尝试了什么会很有帮助。看起来像是在一个正确配置的字段类型上进行搜索,您可能正在寻找它?
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true"/>
<analyzer>
  <tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.ShingleFilterFactory"/>
</analyzer>