[SERVER-9063] Integrate text search into normal query system Created: 21/Mar/13 Updated: 02/Feb/16 Resolved: 17/Dec/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Text Search |
| Affects Version/s: | 2.4.0 |
| Fix Version/s: | 2.5.5 |
| Type: | New Feature | Priority: | Major - P3 |
| Reporter: | Robert Dickinson | Assignee: | J Rassi |
| Resolution: | Done | Votes: | 23 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
original:
|
| Comments |
| Comment by Githook User [ 18/Dec/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: Sort on textScore without projection no longer supported. Negative |
| Comment by Githook User [ 17/Dec/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by Githook User [ 13/Dec/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by Githook User [ 02/Dec/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: Pending mongos support, disabling fts_score_sort.js in sharded |
| Comment by Githook User [ 02/Dec/13 ] |
|
Author: {u'username': u'hkhalsa', u'name': u'Hari Khalsa', u'email': u'hkhalsa@10gen.com'}Message: |
| Comment by auto [ 15/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by hari.khalsa@10gen.com [ 15/Oct/13 ] |
|
alerner gianfranco rassi@10gen.com Not for 2.5.3 but we should do it for 2.5.4. |
| Comment by Gianfranco Palumbo [ 15/Oct/13 ] |
|
Will $text support explain()? |
| Comment by J Rassi [ 12/Oct/13 ] |
|
Above commits implement $text with a blocking stage. Like $near, having a $text predicate currently implies a sort order and a limit of 100, both of which can be overridden. Plans can only be generated for queries with a $text predicate if a text index exists. Attempting a $text query with the old query framework will generate the cryptic error message "assertion src/mongo/db/matcher/expression_text.cpp:45" to send back to the user. Including a $text predicate disallows collection scans and forces the planner to use the text index. |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by auto [ 12/Oct/13 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by Tyler Brock [ 24/May/13 ] |
|
It would be great if we could have the text search filter not necessarily produce a score for a given document and simply match for doing operations like counting/grouping matches. Perhaps the server would be smart enough to do that if the score field was turned off in a projection or not implicitly included. |
| Comment by Antoine Girbal [ 24/May/13 ] |
|
Yes this is a big limitation right now. or { txt: "text", popularity: 1 }Then you can just search and iterate document efficiently on that field. |
| Comment by Suren [ 11/Apr/13 ] |
|
The api would be readable if its something like this: db.collections.search(filter:{},text:"search string") db.collections.search(filter:{},text:"search string").skip(n).limit(n) |
| Comment by Sam Martin [ 11/Apr/13 ] |
|
The text search functionality has meant I no longer need to duplicate information into a string array and multi-key index, and whilst slower in a few use cases, overall the text search is much, much faster especially where the terms searched for do not exactly match the indexed values. The downside is that to do a simple text search pre-filtering the documents can only be done on a single equals condition which for me means changing the schema and denormalising a flag to indicate which documents are subject to the search. My requirement would be to search documents matching a particular type, { filter : { doctype : { $in : [ObjectId("..."),ObjectId("...")] }} }, { search : "my search term" }... If the text command could return a cursor to enable clients to skip/take results that would make it more useful also. |