繁体   English   中英

Lucene索引搜索

[英]Lucene index searching

我第一次使用Lucene索引。 我有印地文和英文的一些文档,并在文档内容上创建索引。当我搜索索引时,即使我的查询是某些英文单词,我也会从所有文档中获取结果,它也会返回印地文文档。 我在下面添加了代码。请告诉我我哪里错了。

        IndexSearcher searcher = new IndexSearcher(directory);
        QueryParser parser = new QueryParser("Content", analyzer);



        while (condition)
        {
            Search(text, searcher, parser);

        }


        searcher.Close();
        private static void Search(string text, IndexSearcher searcher, QueryParse parser)
    {
        Query query = parser.Parse(text);

        Hits hits = searcher.Search(query);
        int results = hits.Length();

        for (int i = 0; i < results; i++)
        {
            Lucene.Net.Documents.Document doc = hits.Doc(i);

            string show = doc.ToString();

            float score = hits.Score(i);

            /* insert doc id in database table*/

            }

谢谢大家

首先,我将使用Luke来检查查询语法是否正确。 然后,我将检查行为不正常的英语单词是否是印地语单词的同形字(即,拼写与印地语单词相同的英语单词)。

如果您要阻止英语搜索字词与北印度文文档一起出现,则需要标记每个文档是英语还是北印度文,然后在搜索查询中指定该标记。 在查询解析器语法中,这可能类似于:

ENGLISHSEARCHTERMS +(language:English)

(其中所有印地文文档的语言字段都设置为“印地语”,而所有英文文档的语言字段都设置为“英语”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM