Я создал индекс, как.net Lucene поиск Multifield
Document doc = new Document();
doc.Add(new Field("SearchKey", (item.FullTextColumn ?? item.Code), Field.Store.NO, Field.Index.TOKENIZED));
doc.Add(new Field("Type", item.Type.ToString(), Field.Store.YES, Field.Index.TOKENIZED));
doc.Add(new Field("Name", item.Name, Field.Store.YES, Field.Index.UN_TOKENIZED));
doc.Add(new Field("Code", item.Code ?? string.Empty, Field.Store.YES, Field.Index.UN_TOKENIZED));
и т.д.
и я пытаюсь найти термин, как «Канзас-Сити» в поле «SearchKey», а другой подал «Тип» должен быть «Аэропорт»
за что я пишу
QueryParser parser = new QueryParser("SearchKey", analyzer);
Query searchQuery = parser.Parse(text);
TermQuery typeQuery = new TermQuery(new Term("Type", "Airport"));
BooleanQuery filterQuery = new BooleanQuery();
filterQuery.Add(typeQuery, BooleanClause.Occur.MUST);
Filter f = new QueryFilter(filterQuery);
Hits results = searcher.Search(searchQuery,f);
но это не дает мне никакого результата,
если удалить «F» из
Hits results = searcher.Search(searchQuery,f);
то это дает результат, но поле «Тип» содержит другие значения затем «Аэропорт».
любая идея, где я ошибаюсь?