Elastic search avec Nid
Je suis en train de travailler sur le code ci-dessous, et ce que je veux faire est de requête par l'objet lui-même.
Par exemple: j'ai un formulaire de recherche, qui remplit les objets les champs comme ci-dessous. Alors ce que je veux faire est de rechercher Élastique recherche en fonction de ce que l'utilisateur a rempli le formulaire.
ie: ci-dessous, je veux interroger l'index par searchItem objet. Comment puis-je le faire facilement?
class Program
{
static void Main(string[] args)
{
var p = new Program();
var item1 = new Announcement() {Id=1, Title = "john", ContentText = "lorem", Bar = false, Num = 99, Foo = "hellow"};
//p.Index(item1, "add");
var searchItem = new Announcement() {Title="john",Num=99};
ElasticClient.Search<Announcement>();
Console.Read();
}
public void Index(Announcement announcement, String operation)
{
var uriString = "http://localhost:9200";
var searchBoxUri = new Uri(uriString);
var settings = new ConnectionSettings(searchBoxUri);
settings.SetDefaultIndex("test");
var client = new ElasticClient(settings);
if (operation.Equals("delete"))
{
client.DeleteById("test", "announcement", announcement.Id);
}
else
{
client.Index(announcement, "test", "announcement", announcement.Id);
}
}
private static ElasticClient ElasticClient
{
get
{
try
{
var uriString = "http://localhost:9200";
var searchBoxUri = new Uri(uriString);
var settings = new ConnectionSettings(searchBoxUri);
settings.SetDefaultIndex("test");
return new ElasticClient(settings);
}
catch (Exception)
{
throw;
}
}
}
}
OriginalL'auteur helloworld | 2013-10-01
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas 🙂
NID ne peut conclure à la meilleure façon de requête basé uniquement sur une partie rempli POCO. Faut-il OU ou ET doit-elle faire un imbriquée terme de la requête ou à un terme de la requête enveloppé dans un has_child? Vous attrapez ma dérive.
Nid a une nappe de fonctionnalité appelée conditionless requêtes qui vous permettent de vous l'écrire à l'intégralité de la requête comme ceci:
Lorsque NID voit que l'argument passé à Terme est nul ou vide simplement l'habitude de rendre cette partie de la requête.
En lire plus ici sur le fonctionnement de cette fonctionnalité http://nest.azurewebsites.net/concepts/writing-queries.html
Le lien ne fonctionne pas
OriginalL'auteur Martijn Laarman