我正在使用标准分析器并使用以下代码添加我想要搜索的字段
doc.Add(
new Field(
"BookId",
book.CatalogueBookNo.ToString(),
Field.Store.YES,
Field.Index.NOT_ANALYZED,
Field.TermVector.NO));
doc.Add(
new Field("Title",
strTitle,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
doc.Add(
new Field("Author",
strAuthor,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
doc.Add(
new Field("IssueId_fk",
book.IssueId_fk,
Field.Store.YES,
Field.Index.NOT_ANALYZED,
Field.TermVector.NO));
除了IssueId_Fk字段(未分析且因此完整)之外,所有字段都是可搜索的 - 此字段包含格式为“11_12_4”,“11_12_3”等的字符串值。
我在记事本中打开了lucene索引,可以确认这些值是分隔的,并用下划线完成,但是在IssueId_Fk字段上搜索什么都不返回。
任何人都知道怎么解决这个问题?
干杯
永
答案 0 :(得分:0)
所以你可以尝试用solr.KeywordTokenizerFactory进行分析吗?
答案 1 :(得分:0)
实际上现在已经通过创建一个customanalyzer解决了这个问题。但是感谢有关solr tokenizers的信息。如果你想要一个字段保持完整(例如ID字段等)并且不以任何方式改变你只是不进行分析,那么对于关键字标记器的需求还不是很清楚。这本来应该有效,但标准分析师不知何故它没有。 -