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
<img src="//i.stack.imgur.com/RUiNP.png" height="16" width="18" alt="" class="sponsor tag img">elasticsearch 如何利用支持上下文实现lucene suggester_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch_Solr_Lucene_Lucene.net - Fatal编程技术网 elasticsearch 如何利用支持上下文实现lucene suggester,elasticsearch,solr,lucene,lucene.net,elasticsearch,Solr,Lucene,Lucene.net" /> elasticsearch 如何利用支持上下文实现lucene suggester,elasticsearch,solr,lucene,lucene.net,elasticsearch,Solr,Lucene,Lucene.net" />

elasticsearch 如何利用支持上下文实现lucene suggester

elasticsearch 如何利用支持上下文实现lucene suggester,elasticsearch,solr,lucene,lucene.net,elasticsearch,Solr,Lucene,Lucene.net,现在只有AnalyzingFixSuggester支持上下文。所有其他实现,如AnalyzingSuggester、FreeTextSuggester、FuzzySugster,都不支持上下文。 在我的任务中,我需要实现suggester,它只搜索文档中存在的具有特定字段和特定值的术语。 例如,只有字段类型具有值类型A的文档的字段描述的术语 现在为了解决这个问题,我为每个类型创建了不同的迭代器, 就像这样: Map<String, List<String>> ma

现在只有AnalyzingFixSuggester支持上下文。所有其他实现,如AnalyzingSuggester、FreeTextSuggester、FuzzySugster,都不支持上下文。 在我的任务中,我需要实现suggester,它只搜索文档中存在的具有特定字段和特定值的术语。 例如,只有字段类型具有值类型A的文档的字段描述的术语

现在为了解决这个问题,我为每个类型创建了不同的迭代器, 就像这样:

    Map<String, List<String>> mapOfTerms...;        
    int maxDoc = indexReader.maxDoc();                 

    for (int i = 0; i < maxDoc; i++) {            

        Document doc = indexReader.document(i);
        String type = doc.get("type");

        List<String> list = mapOfTerms.get(type);
        //... add terms from doc to list            
    }

   //create custom InputIterator for each type list
   //create AnalyzingSuggester, AnalyzingInfixSuggester, FreeTextSuggester, FuzzySuggester for each InputIterator 
术语映射。。。;
int maxDoc=indexReader.maxDoc();
对于(int i=0;i
例如,对于三种类型的“A型”、“B型”和“C型”,我提出了12条建议。
如何更好地解决此问题?

问题是关于suggester的上下文。我的答案是过滤结果,就像suggester只为文档的子集生成一样。 lucene folk将此过滤器称为上下文:

版本5.4是第一个solr版本,在建议上支持筛选器,但仅适用于BlendedInfixSuggester和AnalyzingInfixSuggester:

因此,对于所有其他建议,您必须为每个可能的过滤器构建一个建议,例如,为每个过滤器创建一个额外字段“field\u filtername”

没有额外的信息,我看不出如何更好地解决这个问题

可能您的上下文可以用作的路由(每个上下文的建议者分离已经由SolrCloud完成)


可能您根本不需要建议,突出显示或面可以解决您原来的问题。

谢谢,您的意思是:“因此,对于所有其他建议,您必须为每个可能的筛选器构建一个建议,例如,为每个筛选器“field\u filtername”创建一个额外字段。”?现在我为我的案例制作了custominputierator、CustomLuceneDictionary、CustomMultiFields。自定义InputIterator仅包含筛选的术语。我的方法要求字段名包含类型名,例如字段“title\u typeA”、“title\u typeB”。。。