Рядом с моим предыдущим question. Я хочу выполнить поиск запросов lucene.Практическое руководство по документу с видом присоединения
Вот мои модели:
public class User
{
public string Id { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
public class Book
{
public string Id { get; set; }
public string Title { get; set; }
}
public class BookFavorite
{
public string Id { get; set; }
public string UserId { get; set; }
public string BookId { get; set; }
}
Итак, я хочу, чтобы искать на поле «Название» из книги, но только в книгах, которые в избранное. Поэтому мне нужно сделать вид соединения между Book и BookFavorite и индексным полем заголовка.
Я пробовал с индексом MultiMap, но мне было трудно заставить его работать.
Любая помощь? Спасибо.
EDIT: Индекс MultiMap
public class BookFavoriteSearchIndex : AbstractMultiMapIndexCreationTask<BookFavoriteSearchIndex.ReduceResult>
{
public class ReduceResult
{
public string BookId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public string Abstract { get; set; }
public string Tag { get; set; }
}
public BookFavoriteSearchIndex()
{
AddMap<Book>(books => from book in books
from tag in book.Tags
select new
{
BookId = book.Id,
Title = book.Title,
Description = book.Description,
Abstract = book.Abstract,
Tag = tag
});
AddMap<BookFavorite>(bfs => from bf in bfs
select new
{
BookId = bf.BookId,
Title = (string)null,
Description = (string)null,
Abstract = (string)null,
Tag = (string)null
});
Reduce = results => from result in results
group result by result.BookId
into g
select new
{
BookId = g.Key,
Title = g.Select(x => x.Title).FirstOrDefault(x => x != null),
Description = g.Select(x => x.Description).FirstOrDefault(x => x != null),
Abstract = g.Select(x => x.Abstract).FirstOrDefault(x => x != null),
Tag = g.Select(x => x.Tag).FirstOrDefault(x => x != null),
};
}
}
Можете ли вы разместить текущий указатель MultiMap, который у вас есть? –
Просто отредактирован. Обратите внимание, что мне нужно искать по всем полям тезисов, включая теги, что делает меня еще одной проблемой, поскольку, кажется, индексирует только одно значение, а не все значения тегов ... –