Мы используем полнотекстовое индексирование Sql Server 2012, однако мы хотели бы переместить нашу базу данных в Sql Azure. Используя инструмент миграции, мы говорим, что полнотекстовое индексирование несовместимо с Sql Azure (даже v12, который находится в предварительном просмотре, не поддерживает его, поэтому он не выглядит так, как будто он намерен его поддерживать).Ограничение данных с Lucene.NET
Из-за этого мы рассматриваем альтернативы и лучшее, что я нашел до сих пор, использует Lucene.NET с AzureDirectory (https://azuredirectory.codeplex.com). Это позволит нам хранить индекс в хранилище blob и кэшировать его локально в файловой системе виртуальных машин, которые размещают веб-сайты (также в Azure).
Проблема заключается в том, что данные, которые мы намерены индексировать, представляют собой такие элементы, как новостные сюжеты, которые не видны всем пользователям из-за модели публикации, которую мы ограничиваем, чтобы элементы отображались только подмножеством пользователей. При полнотекстовом индексировании при поиске новостной ленты мы можем ограничить данные для поиска с помощью простого соединения с тем, что видимо для них, однако с Lucene мы не сможем это сделать.
Идея, которую мы придумали, состоит в том, чтобы принимать новостные сюжеты в индексе с коллекцией UserIds, которым разрешено просматривать эту новость, я боюсь, что я очень новичок в Lucene, и я не могу найти лучший способ чтобы сделать это, мы добавляем индекс для газетного так:
document.Add(new Field("Title",
news.Title,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
document.Add(new Field("Content",
news.Content,
Field.Store.YES,
Field.Index.ANALYZED,
Field.TermVector.NO));
Однако, если у нас есть коллекция UserIds определяется как
IEnumerable<int>
Как мы могли бы добавить их к индексу новости сюжета а затем эффективно искать их для данного идентификатора пользователя. Кроме того, какова будет производительность, если мы добавляем 100 или 1000 пользователей UserIds против lucene-документа. Есть ли лучший способ пойти, чем по этой дороге, поскольку это может быть ужасная идея (возможно, это ужасная идея)?