3

私は、ElasticSearch と .NET 用の NEST C# ライブラリを使用して、最初の一歩を踏み出しています。これが私のコードです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Nest;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        var setting = new ConnectionSettings(new Uri("http://localhost:9200/"));
        setting.SetDefaultIndex("Post");
        var client = new ElasticClient(setting);

        var post = new Post();
        post.id = 1;
        post.title = "the title";

        var t = client.Index(post);

        var results = client.Search<Post>(s => s.From(0)
            .Size(10)
            .Fields(f => f.id, f => f.title)
            .Query(q => q.Term(f => f.title, "title", Boost: 2.0))
            );

    }
}
public class Post
{
    public int id { get; set; }
    public string title { get; set; }
}

「タイトル」キーワードが含まれているため、投稿 1 から結果を取得することを期待していましたが、空の結果セットが取得されます。私が間違っていることは何ですか?

4

2 に答える 2

3

問題は、使用されているtermクエリです。これは、索引付けされた正確なテキストのみに一致します。このtermクエリは、id タイプの検索に役立ちます。

フリー テキスト検索を行っている場合は、matchクエリを使用して汎用的なフリー テキスト検索を試してみてください。詳細については、こちらの公式ドキュメントを参照してください。ドキュメントに慣れることで、興味深く強力なクエリを作成する方法を発見できることを願っています。

幸運を

于 2013-08-15T14:04:10.240 に答える
0

投稿のインデックス化にかかる時間はごくわずかです。Thread.Sleep(1000); を挿入すると、インデックス作成とクエリの間に、結果が得られます。

于 2013-08-15T10:24:29.483 に答える