Try it live

There is public live Linux server (used for benchmark) available at 40.68.212.137 listening on port 2055. This server has Stack Overflow's data (as of late 2016). To try it, you need to get a client and reference LinqdbClient.dll. Then you need to add this data model:

public class Question
{
    public int Id { get; set; }
    public string Title { get; set; }
    public byte[] Body { get; set; }
    public DateTime CreationDate { get; set; }
    public int Score { get; set; }
    public int ViewCount { get; set; }
    public int? OwnerUserId { get; set; }
    public int? LastEditorUserId { get; set; }
    public string LastEditorDisplayName { get; set; }
    public DateTime? LastEditDate { get; set; }
    public DateTime? LastActivityDate { get; set; }
    public string Tags { get; set; }
    public int AnswerCount { get; set; }
    public int CommentCount { get; set; }
    public int? FavoriteCount { get; set; }
    public DateTime? CommunityOwnedDate { get; set; }
    public int? AcceptedAnswerId { get; set; }
    public string TagIds { get; set; }
    public int TagCount { get; set; }
}
public class Answer
{
    public int Id { get; set; }
    public int ParentId { get; set; }
    public byte[] Body { get; set; }
    public DateTime CreationDate { get; set; }
    public int Score { get; set; }
    public int? OwnerUserId { get; set; }
    public int? LastEditorUserId { get; set; }
    public DateTime? LastEditDate { get; set; }
    public DateTime? LastActivityDate { get; set; }
    public int CommentCount { get; set; }
}
public class Tag
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Count { get; set; }
    public int? ExcerptPostId { get; set; }
    public int? WikiPostId { get; set; }
}
public class QuestionTags
{
    public int Id { get; set; }
    public int QuestionId { get; set; }
    public int TagId { get; set; }
}
public class User
{
    public int Id { get; set; }
    public int Reputation { get; set; }
    public DateTime CreationDate { get; set; }
    public string DisplayName { get; set; }
    public DateTime LastAccessDate { get; set; }
    public string WebsiteUrl { get; set; }
    public string Location { get; set; }
    public string AboutMe { get; set; }
    public int Views { get; set; }
    public int UpVotes { get; set; }
    public int DownVotes { get; set; }
    public int? AccountId { get; set; }
}
public class Comment
{
    public int Id { get; set; }
    public int PostId { get; set; }
    public int Score { get; set; }
    public byte[] Text { get; set; }
    public DateTime CreationDate { get; set; }
    public int? UserId { get; set; }
}

Connect with user reader/reader, which has read-only permissions. For example,
using LinqdbClient;
...
Db db = new Db("40.68.212.137:2055", "reader", "reader");
var total_questions = db.Table<Question>().Count();
total_questions equals 12929939

Let's search for users who may work at Google:
var res = db.Table<User>().Search(f => f.AboutMe, "work at google").Select(f => new { f.DisplayName, f.AboutMe });
There are 442 such users.

Let's find out given user's most upvoted tags:
var answ = db.Table<Answer>()
             .Where(f => f.OwnerUserId == 22656) //Jon Skeet
             .Select(f => new { f.ParentId, f.Score })
             .GroupBy(f => f.ParentId)
             .ToDictionary(f => f.Key, f => f.Sum(z => z.Score));
var res = db.Table<QuestionTags>()
            .IntersectListInt(f => f.QuestionId, answ.Keys.ToList())
            .Select(f => new { f.QuestionId, f.TagId })
            .GroupBy(f => f.TagId)
            .ToDictionary(f => f.Key, f => f.Sum(z => answ[z.QuestionId]));
var tags = db.Table<Tag>()
             .IntersectListInt(f => f.Id, res.Keys.ToList())
             .Select(f => new { f.Id, f.Name })
             .ToDictionary(f => f.Id, f => f.Name);
foreach (var r in res.OrderByDescending(f => f.Value).Take(10))
{
    Console.WriteLine("{0} - {1}", tags[r.Key], r.Value);
}
For Jon Skeet these are:
c# - 183828
java - 108478
.net - 63535
linq - 25225
string - 18279
generics - 15021
date - 11651
timezone - 9726
multithreading - 9651
reflection - 7673


Finally, here is the query that finds questions with given tag from high-rep users which has no answers:
var tag_id = db.Table<Tag>().Where(f => f.Name == "c#").SelectEntity().First().Id + "";
var users = new HashSet<int>(db.Table<User>().Where(f => f.Reputation > 1000).Select(f => new { f.Id }).Select(f => f.Id));
var qs = db.Table<Question>()
           .Where(f => f.AnswerCount == 0 && f.TagCount == 1)
           .IntersectHashsetInt(f => f.OwnerUserId, users)
           .Search(f => f.TagIds, tag_id)
           .OrderByDescending(f => f.CreationDate)
           .Take(15)
           .SelectEntity();
foreach(var q in qs)
{
    Console.WriteLine(q.Id+" "+q.Title);
}
Partial output:
41045410 How do I manually parse HTTP requests in .net core?
41036148 Enumerator of value type of list in c#
40660533 Trying to throw a BadRequest to my ExceptionFilterAttribute
40612201 How to determine whether a UserGroup has Folder Access Permissions
40346587 How to make specific CultureInfo from neutral one and a region code?
Note that we have .Search(f => f.TagIds, tag_id). TagIds is a string like 9|10|5 which means question has 3 tags with ids 9, 10 and 5. .Search(f => f.TagIds, "9") .Search(f => f.TagIds, "10") .Search(f => f.TagIds, "5") would all find such question.

For more advanced example check out full-text search engine: https://github.com/ren85/stackse_linqdb