我想编写一个自定义过滤器,其工作方式类似于Path Hierarchy Tokenizer

时间:2014-11-29 08:23:16

标签: solr filter lucene

请找到附加的代码我不能发布分析图像,因为我的声誉小于10.事情是我得到空的空间直到最后一个标记,并且在所有那些添加的tokes之后。这里的问题是分析我查询不匹配索引内容我没有得到什么错误

public final boolean incrementToken() throws IOException
{
    if(Flag_Tokens_are_read)
    {
        String buffer="";
        if((loop++)!=tokenCount-1)
        {
            for(int k=loop;k<tokenCount;)
            {
                buffer = buffer+tokensArray.get(k).toString();
                k++;
                if(k<tokenCount)
                        buffer=buffer+" ";
                else
                {
                    if(Flag_First_Time_total_length)
                    {   startOffset=0;
                        endOffset=buffer.length();
                        Flag_First_Time_total_length=false;
                    }
                    else
                    {
                        int length = buffer.length()-1;
                        startOffset=endOffset-length;
                        //endOffset=17;
                    }
                    char[] newBuffer = buffer.toCharArray();
                    termAtt.setEmpty();

                    this.termAtt.copyBuffer(newBuffer, 0, newBuffer.length);
                    offsetAtt.setOffset(startOffset, endOffset);
                    posIncAttr.setPositionIncrement(0);
                    return true;
                }
            }
        }
        return false;
    }

    if (input.incrementToken()) 
    {
        String token = termAtt.toString();
        tokensArray.add(token); 
        //this.termAtt.copyBuffer(newBuffer, 0, newBuffer.length);
        return incrementToken();

    }
    else
    {   if(Flag_First_Time)
        {
            tokenCount=tokensArray.size();
            Flag_Tokens_are_read=true;
            loop=-1;
            Flag_First_Time = false;
            return incrementToken();
        }
        else
        {
            return false;
        }
    }

这是我的incrementtoken()代码。它的工作,但我不知道为什么它不适用于查询搜索

0 个答案:

没有答案
相关问题