Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/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
Neo4j\Lucene查询结束时的多项通配符_Lucene_Neo4j_Full Text Search_Autosuggest_Fulltext Index - Fatal编程技术网

Neo4j\Lucene查询结束时的多项通配符

Neo4j\Lucene查询结束时的多项通配符,lucene,neo4j,full-text-search,autosuggest,fulltext-index,Lucene,Neo4j,Full Text Search,Autosuggest,Fulltext Index,我正在尝试创建基于Lucene全文索引的自动建议。 例如,主要问题是如何基于多术语短语创建自动建议(autocomplete)- nosql dat* 结果可以是 nosql database nosql data 但不是 perfect nosql database Lucene查询的正确语法是什么,以便根据多术语查询中的第一个单词创建自动建议,并在末尾使用通配符?我也有类似的要求, Lucene具有Span查询,允许您在查询中使用文本中单词的位置 我已经使用FirstSpanQuery

我正在尝试创建基于Lucene全文索引的自动建议。 例如,主要问题是如何基于多术语短语创建自动建议(autocomplete)-

nosql dat*
结果可以是

nosql database
nosql data
但不是

perfect nosql database

Lucene查询的正确语法是什么,以便根据多术语查询中的第一个单词创建自动建议,并在末尾使用通配符?

我也有类似的要求, Lucene具有Span查询,允许您在查询中使用文本中单词的位置

我已经使用FirstSpanQuery在Lucene中实现了它。(请在网站上阅读)

在这里,我使用PanerarQuery强制所有单词彼此相邻,并且 SpanFirstQuery以强制所有字符都位于文本的开头

    if (querystr.contains(" ")) // more than one word?
    {
        String[] words = querystr.split(" ");           
        SpanQuery[] clausesWildCard = new SpanQuery[words.length];          
        for (int i = 0; i < words.length; i++) {                
            if (i == words.length - 1) //last word, add wildcard clause
            {
                PrefixQuery pq = new PrefixQuery(new Term(VALUE, words[i])); 
                clausesWildCard[i] = new SpanMultiTermQueryWrapper<PrefixQuery>(pq);
            }
            else
            {
                Term clause = new Term(VALUE, words[i]); 
                clausesWildCard[i] = new SpanTermQuery(clause);
            }               
        }

        SpanQuery allTheWordsNear = new SpanNearQuery(clausesWildCard, 0, true);
        prefixquery = new SpanFirstQuery(allTheWordsNear, words.length);
    }
if(querystr.contains(“”)//多个单词?
{
String[]words=querystr.split(“”);
span查询[]子句通配符=新span查询[words.length];
对于(inti=0;i
在-中介绍了一种变通方法,该方法也适用于Neo4j中的手动索引。