Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/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,仅在EdgeNGramFilterFactory匹配时返回结果_Solr - Fatal编程技术网

Solr,仅在EdgeNGramFilterFactory匹配时返回结果

Solr,仅在EdgeNGramFilterFactory匹配时返回结果,solr,Solr,我正在搜索一个多值字段,该字段定义为: 但是如果我搜索的单词长度超过了maxGramSize的15,我不会得到任何结果。因此,使用以下索引: vedlikeholdsskjema på toyota corolla Gode ting kiwi kan spises med skall, banan 我在猕猴桃、巴南等方面得到了结果,但在维德利克霍尔德斯克杰玛方面没有。我想我可以增加maxGramSize的大小,但我原以为StandardTokenizerFactory和LowerCaseF

我正在搜索一个多值字段,该字段定义为:

但是如果我搜索的单词长度超过了maxGramSize的15,我不会得到任何结果。因此,使用以下索引:

vedlikeholdsskjema på toyota corolla Gode ting  kiwi kan spises med skall, banan

我在猕猴桃、巴南等方面得到了结果,但在维德利克霍尔德斯克杰玛方面没有。我想我可以增加maxGramSize的大小,但我原以为StandardTokenizerFactory和LowerCaseFilterFactory会在这种情况下为我提供匹配项

这是分析页面的截图


我正在运行Solr 4.7.0。

是的。你说得对。在上述情况下,需要将maxGramSize增加15以上,以获得所需的结果/输出

但在此之前,你真的需要把一个词拆分成多个词。我是说你的搜索条件是什么?是否要进行部分单词搜索

例如: 当用户使用vedlikeh搜索时,您希望他显示vedlikeholdsskjema的结果。这是部分单词搜索。如果这是要求,那么您应该继续增加maxGramSize

但是我认为如果你没有这样的要求,那么增加索引大小就没有意义了。您应该选择更简单的字段类型。 根据您的需求,使用现有的或创建自己的

有关EdgeNGramFilterFactory的更多信息,请参阅


我仍然有点困惑,为什么StandardTokenizerFactory和LowerCaseFilterFactory没有给我任何结果?它们在分析工具中匹配。我们使用EdgeNGramFilterFactory,因为我们有一个自动完成搜索。我们还希望得到vedlikehold、skjema和vedlikeholdsskjema的结果,它们都是有效的挪威单词。但也许有更好的方法来实现这一点?你误解了分析结果。结果显示了从上到下的5个步骤/表格。在前两个步骤中,您仍然有一根火柴,之后您将失去它。从第3步开始,没有以灰色突出显示。StandardTokenizerFactory和LowerCaseFilterFactory不会给您任何结果,因为在此之后您添加了EdgeNGramFilterFactory。而且,EdgeNGramFilterFactory没有按照您的期望创建正确的索引。你可以在看不到“vedlikeholdsskjema”的地方查看最终分析。最终分析在索引分析器中的org.apache.solr.analysis.EdgeNGramFilterFactory之后进行。没有索引…不会有任何搜索结果。。。