Git Product home page Git Product logo

sitecore-elasticsearchprovider's People

Contributors

aweber1 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

sitecore-elasticsearchprovider's Issues

Virtual fields are untested.

Same as computed fields.

Originally created at 2013-07-25 22:58:05+00:00 (UTC) by aweber1 as a(n) major issue.

Multilingual content not tested

So far, only US English has been used.

Originally created at 2013-07-25 22:59:07+00:00 (UTC) by aweber1 as a(n) major issue.

Determine how to accurately search for empty fields

Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQueryMapper.HandleOr()

When using a 'Missing' filter, the following query works for 99% of items:

#!c#

Query.Filtered(fq => fq.Filter(f => f.Missing(fieldName)));

However, if a field contains a stopword and only a stopword, then it's treated as "missing" by ES.

For example, say you have an item whose "Title" field contains just the word "To" (which is a stopword), if you try to search for all items without a value in the "Title" field (i.e. the field is missing), ES will still return the item whose "Title" field contains just the word "To".

There's possibly a better query to use than a 'Missing' filter... or maybe not, maybe it can only be done with analyzers. Who could say?

Originally created at 2013-07-25 23:19:33+00:00 (UTC) by aweber1 as a(n) minor issue.

Confirm 'Or' queries are implemented correctly

Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQueryMapper.HandleOr()

Code in this method currently works quite well, but there is extra code to specifically handle string.IsNullOrEmpty in this method. The Lucene provider doesn't have this extra code but the Solr provider does. Why?

Originally created at 2013-07-25 23:15:35+00:00 (UTC) by aweber1 as a(n) minor issue.

Implement ability to search specific types in the index, instead of blanket type search

Sitecore.ContentSearch.ElasticSearchProvider.LinqToElasticSearchIndex.Execute()

Elasticsearch allows you to assign arbitrary 'types' for the documents you index. Think of these types as (more or less) categories as opposed to types you find in programming languages (i.e. string, int, etc...).

When executing a search against an ES index, you can specify which types to search against. Currently, the provider code just does a blanket search against all types in the index. Ideally, the provider would be able to infer the type(s) to search against based on a mapping or attribute or generic argument, etc.. The indexing functions would need to infer types as well so that documents are stored with the proper type declaration.

There's probably a pretty straightforward way to do this (notice I didn't say "easy"), but not tonight.

Originally created at 2013-07-25 23:38:58+00:00 (UTC) by aweber1 as a(n) major issue.

Confirm 'Not' queries are implemented correctly

Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQueryMapper.HandleNot()

Code in this method currently works for basic term (field) queries, but both the Linq and Solr providers have code that does "more". Need to test with more queries.

Originally created at 2013-07-25 23:12:24+00:00 (UTC) by aweber1 as a(n) minor issue.

Field mapping implementation incomplete

Field mapping is only partially implemented at the moment. While you could technically specify a

#!xml

<fieldMap />

definition at the moment, it probably wouldn't do what you'd expect. Or, more likely, it would result in many beautiful YSOD.

The default FieldReaders work at the moment though, so there's at least some intelligent field processing going on.

Originally created at 2013-07-25 22:55:22+00:00 (UTC) by aweber1 as a(n) major issue.

Implement better wildcard queries for non-wildcard-specific operations (Contains, StartsWith, EndsWith)

Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQueryMapper.HandleContains(), HandleStartsWith(), HandleEndsWith()

According to ES docs, wildcard queries do not scale well with large indexes. Googling around for alternate solutions alludes to using n-gram analyzers and regular term queries.

The question is, how to implement such analyzing and querying so that it works "out of the box" as opposed to having to tweak field maps/storage settings?

Probably an easy way to accomplish this, but I'm experiencing search overload. (search is complicated!)

Originally created at 2013-07-25 23:24:21+00:00 (UTC) by aweber1 as a(n) major issue.

Verify that using .Size(0) for count methods and any methods processing is accurate

Sitecore.ContentSearch.ElasticSearchProvider.LinqToElasticSearchIndex.Execute

When processing Count and Any methods, the current code uses the Nest.SearchDescriptor.Size method to set the result set size. Lucene and Solr both parse/process these methods differently and unfortunately their code doesn't directly translate into something usable via NEST.

Originally created at 2013-07-25 23:50:14+00:00 (UTC) by aweber1 as a(n) major issue.

Computed fields are untested

It is unknown at the moment whether computed fields will work with the provider. Maybe?

Originally created at 2013-07-25 22:57:28+00:00 (UTC) by aweber1 as a(n) major issue.

Confirm 'MatchNone' queries are implemented correctly

Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQueryMapper.HandleMatchNone()

The current code seems to be working, but it's so simple it doesn't seem right...

Originally created at 2013-07-25 23:26:01+00:00 (UTC) by aweber1 as a(n) major issue.

Serialize queries outside of a NEST.ElasticClient

Is it possible to serialize a NEST query without instantiating Nest.ElasticClient to use its Serialize method?

Would like the ability to serialize a Nest query in the Sitecore.ContentSearch.ElasticSearchProvider.Linq.ElasticSearchQuery.Dump() method.

Originally created at 2013-07-25 23:09:04+00:00 (UTC) by aweber1 as a(n) minor issue.

Implement better logging/search debugging

Currently, only the bare minimum of logging is occurring. Need to be more liberal with logging usage.

Originally created at 2013-07-25 23:51:17+00:00 (UTC) by aweber1 as a(n) trivial issue.

Fields property of ElasticSearchResults not populated

See TODO comments in Sitecore.ContentSearch.ElasticSearchProvider.ElasticSearchResults.

Basically, when processing results, we have to retrieve field values for an individual Hit (document) from the Hit.Source property as opposed to the Hit.Fields property. I have to assume this is related to incomplete field mapping.

The code in place currently works, but it's probably not ideal.

Originally created at 2013-07-25 23:05:11+00:00 (UTC) by aweber1 as a(n) minor issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.