Commit Graph

723 Commits

Author SHA1 Message Date
Mathieu Darse
a3efd78055 Fix cross field queries (see PHRAS-691) 2015-09-07 16:05:10 +02:00
Jean-Yves Gaulier
e8f61a443b PHRAS-676 #time 3h
new : returns facet on "type" (image, video, ...)
new : query on pseudo-field "type", ex:  "type:image"
2015-09-04 14:34:25 +02:00
Mathieu Darse
1fa0b511b1 Remove performance degradation with some subfields 2015-08-31 19:18:10 +02:00
Mathieu Darse
a51fe87f11 Highlight using raw field data too 2015-08-31 19:17:46 +02:00
Mathieu Darse
f0dad09f51 Fix « field to highlight » list fetching 2015-08-31 19:12:25 +02:00
Benoît Burnichon
411beaeb7e Merge pull request #1480 from mdarse/optimise-text-query
Wrap text and concept queries with a single filtered query
2015-08-31 11:33:07 +02:00
Mathieu Darse
ed0affa921 buildConceptQueriesForFields() replaces buildConceptQueries() 2015-08-27 17:35:34 +02:00
Mathieu Darse
f4db1081fd Optimize highlight speed 2015-08-27 17:01:20 +02:00
Benoît Burnichon
3a36410dd6 Merge pull request #1479 from jygaulier/PHRAS-669_default-sort
PHRAS-669
2015-08-27 12:11:40 +02:00
Mathieu Darse
064c5e01a6 Wrap text and concept queries with a single filtered query 2015-08-26 19:29:26 +02:00
Mathieu Darse
d6a44c8a52 Lower-level API to build concept queries
Removes wrapPrivateFieldConceptQueries().
The goal is to wrap text and concept queries with a single call to wrapPrivateFieldQueries().
2015-08-26 19:29:26 +02:00
Mathieu Darse
9d6a428208 Remove concept queries wrapping method 2015-08-26 19:29:26 +02:00
Mathieu Darse
e058814638 Test TextNode with private fields and concepts on private fields 2015-08-26 19:29:26 +02:00
Benoît Burnichon
b1bdd73662 Merge pull request #1478 from mdarse/fix-concept-query-builder
Fix concept query builder & private field wrapping
2015-08-26 18:07:58 +02:00
Benoît Burnichon
065084818b Merge pull request #1474 from mdarse/facet-values-size-wording
Simpler facet handling in ES structure
2015-08-26 18:06:09 +02:00
Jean-Yves Gaulier
09fde387d7 #PHRAS-669 #time 1d
fix: the default sort field/direction (defined as relevance/desc for es) is applied at startup & reset button.
add : default direction
todo in 4.0.1 : allow to change in config/admin ?
2015-08-26 17:15:43 +02:00
Mathieu Darse
c596914ab9 Fix concept query builder & private field wrapping
Concept queries on private fields where adding a « must » clause to
restrict match on certain collections only. Boolean queries do not
enforce one « should » clause match at least once a « must » clause is
added to it.
To make queries on private fields more robust & performants, these are
now wrapped in a filtered query with a collection filter.
2015-08-26 15:21:02 +02:00
Jean-Yves Gaulier
2b1774d994 #PHRAS-230 #time 2h
fix: the field(s) selected in adv-search are applied to whole query.
nb : may return error message if query + filter is nonsense, ex:
Query="foo IN Title" + Filter="Keywords"
2015-08-25 16:29:47 +02:00
Mathieu Darse
7e8a4a53a3 Simpler facet handling in ES structure
- Single property for facet settings in Field, we can’t have a limit
with disabled faceting.
- Fixes bug when fields having incompatible limit but are still merged together.
- Use constants for special limit values (i.e. no limit)
2015-08-24 16:07:53 +02:00
Mathieu Darse
d26330a17f Fix date validation, range query & equality operator 2015-08-24 11:26:46 +02:00
Benoît Burnichon
453cb0453d Merge pull request #1472 from jygaulier/PHRAS-668_NBR-FACETS
PHRAS-668
2015-08-20 11:24:10 +02:00
Jean-Yves Gaulier
72bb1877a7 #PHRAS-668 #time 1d
- fix: facets number (admin/field) is now used by prod.
- add: query/es : removed useless & pack clauses on status masks -> shortest (fastest ?) query
2015-08-20 11:08:55 +02:00
Jean-Yves Gaulier
01dd0ad88a #PHRAS-610 #time 1m
cs to force travis rebuild...
2015-08-18 18:45:00 +02:00
Jean-Yves Gaulier
ef7de07b1a #PHRAS-610 #time 10h 2015-08-18 16:50:55 +02:00
Jean-Yves Gaulier
41758fe341 #PHRAS-622 #time 5m
cs to fix errors in phpstorm
2015-08-17 15:18:33 +02:00
Jean-Yves Gaulier
3ac83408fc #PHRAS-610 #time 2d
WIP
2015-08-17 15:18:33 +02:00
Jean-Yves Gaulier
d984938614 #PHRAS-622 #time 3h
add 'lenient' to prevent es errors when parsing invalid dates
cs
2015-07-29 16:39:19 +02:00
Mathieu Darse
5bbd4bfe33 Fix values lookup on thesaurus hydrator 2015-07-24 18:13:18 +02:00
Benoît Burnichon
81cce5efa2 Merge pull request #1456 from mdarse/fix-regular-text-search
Fix query builds to only hit compatible fields
2015-07-24 17:05:50 +02:00
Mathieu Darse
3569d47467 Fix query builds to only hit compatible fields 2015-07-24 15:28:21 +02:00
Benoît Burnichon
3a8e147db5 Merge pull request #1455 from mdarse/fix-number-field-search
Remove unused QueryContext#getRawFields()
2015-07-24 12:49:52 +02:00
Benoît Burnichon
7e76236a06 Merge pull request #1453 from mdarse/invalid-field-query
Handle queries with invalid fields
2015-07-24 11:26:57 +02:00
Benoît Burnichon
b558cf9de3 Merge pull request #1452 from mdarse/fix-number-field-search
Fix number field search
2015-07-23 22:11:54 +02:00
Mathieu Darse
afbb0e3696 Handle queries with invalid fields
They lead to zero result instead of all results from elasticsearch.
2015-07-23 19:11:12 +02:00
Mathieu Darse
af129601e7 Remove unused QueryContext#getRawFields() 2015-07-23 19:03:34 +02:00
Mathieu Darse
a59c42980c Fix facets on non string fields & fix raw with "in" query 2015-07-23 18:41:10 +02:00
Mathieu Darse
a31442368b Fix number field search
Search with non numeric content will not hit number field (it breaks elasticsearch and is useless anyway)

- Rename QueryHelper::buildPrivateFieldQueries() to wrapPrivateFieldQuery().
    - Signature changed too, the third parameter is dropped an QueryContext is replaced by an array of Field.
    - Query builder closure is now passed an array of Field, not of index field names.
- Remove Field::toConceptPathIndexFieldArray() because method name was beyond understanding (and also because it wasn't needed anymore)
- Various AST node types have changed due to previous API changes
2015-07-23 17:39:11 +02:00
Jean-Yves Gaulier
82a8c97790 #PHRAS-606 #time 5m
fix: mime is forced into es
2015-07-21 18:23:21 +02:00
Jean-Yves Gaulier
00f8c8735d #PHRAS-606 #time 4h
fix default "binary" thumbnails for stories
nb : must re-populate
2015-07-21 16:54:36 +02:00
Benoît Burnichon
e0573fc4f6 Merge pull request #1423 from mdarse/private-fields-ast
Restrict search on visible private fields
2015-07-17 17:36:30 +02:00
Mathieu Darse
daea7f8c77 Raw queries do not localize fields anymore 2015-07-17 15:58:39 +02:00
Mathieu Darse
a813ef51e7 Restrict facets to show only visible content on private fields 2015-07-17 14:30:01 +02:00
Mathieu Darse
44cb5824e7 Implement private fields on range an equal nodes
New QueryContext::get() method
Removed QueryContext::normalizeField(), can be replaced with get() and a call to
Field::getIndexField().
2015-07-16 20:11:43 +02:00
Mathieu Darse
78ab5b31dc Fix search when narrowed to private fields only 2015-07-16 19:52:25 +02:00
Mathieu Darse
7a330d2ef6 Fix highlight on private fields 2015-07-16 18:28:34 +02:00
Mathieu Darse
419c147982 Fix LimitedCollection::get() & add tests 2015-07-16 18:27:48 +02:00
Mathieu Darse
83d9cd4790 Fix getUnrestrictedFields() when called on non narrowed query context
Add tests and prevent AST to rely on field key by returning indexed arrays
instead of associative ones.
2015-07-16 15:44:16 +02:00
Jean-Yves Gaulier
d012978508 PHRAS-504 #time 8h
fix: prod / cr-lf in metadata is ok for aggregate  filter
cr,lf,crlf are normalized
- getting field values from recordadapter
- during es indexation (direct sql read in metadata...)
- before querying
2015-07-15 11:10:38 +02:00
Mathieu Darse
1e31b68c5f Refactor Term (Thesaurus), Text and Raw queries to work with private fields
Also fix a bug in QueryHelper::applyBooleanClause()
2015-07-10 20:58:37 +02:00
Mathieu Darse
d778ab5126 Refactor query context
No more private collection map, uses new features from LimitedStructure.
From now on, Context tries to return Field objects instead of strings.

New context methods:
- getUnrestrictedFields()
- getPrivateFields()
- localizeField(Field) (signature changed)
- localizeFieldName(string)

QueryContext::localizeField() now takes a Field object, use localizeFieldName() if you want to pass a string.

Field::getIndexFieldName() renamed to Field::getIndexField().
Raw index fields are now obtained with Field::getIndexField(true).
2015-07-10 17:33:10 +02:00