【问题标题】:How to search GUID using lucene.net如何使用 lucene.net 搜索 GUID
【发布时间】:2013-09-12 11:45:15
【问题描述】:

我正在使用 lucene.net (LUCENE_30),因为我想搜索 GUID 格式的类别,但无法通过使用 lucene searchresult 进行搜索。

我们可以使用 lucene 搜索来搜索 GUID 吗?

我的代码看起来像这样,其中 maxResult = 10000;

QueryParser parser = new QueryParser(version, "IDTag", analyzer);
termQuery = parser.Parse(strIDTag);// where I am passing GUID value
TopDocs topDocs = searcher.Search(termQuery, maxResults);

在 topDocs 之后,我的点击率为零。我可以使用什么类型的搜索查询,我使用过 QueryParser、BooleanQuery、TermQuery。谁能帮我解决这个问题?

【问题讨论】:

  • 你在现场使用什么分析仪?
  • 我在现场使用 StandardAnalyzer。我也为此使用了普通的分析器,但没有运气。
  • 该字段包含什么?单个 GUID 还是 GUID 和其他文本的混合?

标签: asp.net c#-4.0 search lucene.net


【解决方案1】:

在 Lucene 中索引和搜索 GUID 字段没有问题。您唯一需要确保的是,如果您实际上使用 NOT_ANALYZED 选项为字段编制索引,则您没有通过分析器处理您的查询。

当您使用标准分析器时,索引时对该字段的唯一更改是将 GUID 中的任何文本更改为小写(如果由于某种原因它还不是小写)。

我的建议是设置 GUID 字段不被分析,然后使用 TermQuery 而不是解析。

如果您想要更明智的答案,您确实需要提供用于索引 GUID 的代码,以及您的 GUID 的实际外观。

【讨论】:

  • 感谢安德鲁的意见。
猜你喜欢
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多