|
|
| Line 1: |
Line 1: |
| − | <!-- Pod2Wiki=_preamble_
| |
| − | This page has been automatically generated from the EPrints source. Any wiki changes made between the 'Pod2Wiki=*' and 'End of Pod2Wiki' comments will be lost.
| |
| − | -->{{Pod2Wiki}}{{API:Source|file=EPrints/Search/Condition.pm|package_name=EPrints::Search::Condition}}[[Category:API|Condition]]<!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=head_name -->=NAME=
| |
| − | '''EPrints::Search::Condition''' - Atomic search condition.
| |
| | | | |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=head_description -->=DESCRIPTION=
| |
| − | Represents a simple atomic search condition like abstract contains "fish" or date is bigger than 2000.
| |
| − |
| |
| − | Can also represent a "AND" or "OR"'d list of sub-conditions, so forming a tree-like data-structure.
| |
| − |
| |
| − | Search conditions can be used either to create search results (as a list of id's), or to test if a single object matches the condition.
| |
| − |
| |
| − | This module should usually not be used directly. It is used internally by EPrints::Search.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_new -->==new==
| |
| − |
| |
| − | $scond = EPrints::Search::Condition->new( $op, @params );
| |
| − |
| |
| − | Create a new search condition object with the given operation and parameters.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_copy_from -->==copy_from==
| |
| − |
| |
| − | $scond->copy_from( $scond2 );
| |
| − |
| |
| − | Make this search condition the same as $scond2. Used by the optimiser to shuffle things around.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_describe -->==describe==
| |
| − |
| |
| − | $desc = $scond->describe
| |
| − |
| |
| − | Return a text description of the structure of this search condition tree. Used for debugging.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_get_table -->==get_table==
| |
| − |
| |
| − | $sql_table = $scond->get_table( [ $dataset, $field ] );
| |
| − |
| |
| − | Return the name of the actual SQL table which this condition is concerned with.
| |
| − |
| |
| − | If dataset and field is defined then uses these rather than the current value for the condition.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_is_comparison -->==is_comparison==
| |
| − |
| |
| − | $bool = $scond->is_comparison
| |
| − |
| |
| − | Return true if the OP is one of =, >, <, >=, <=
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_is_control -->==is_control==
| |
| − |
| |
| − | $bool = $scond->is_control
| |
| − |
| |
| − | Return true if the OP is one of AND, OR.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_item_matches -->==item_matches==
| |
| − |
| |
| − | $bool = $scond->item_matches( $dataobj )
| |
| − |
| |
| − | Return true if the given data object matches this search condition.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_ordered_ops -->==ordered_ops==
| |
| − |
| |
| − | @ops = $scond->ordered_ops
| |
| − |
| |
| − | AND or OR conditions only. Return the sub conditions ordered by approximate ease. This is used to make sure a TRUE or FALSE is prcessed before an index-lookup, and that everthing else is is tried before a grep OP (which uses LIKE). This means that it can often give up before the expensive operation is needed.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_get_op_val -->==get_op_val==
| |
| − |
| |
| − | @ops = $scond->get_op_val
| |
| − |
| |
| − | Return a number which roughly relates to how "hard" the OP of this condition is. Used to decide what order to process AND and OR sub-conditions.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_process -->==process==
| |
| − |
| |
| − | $ids = $scond->process( $session, [$indent], [$filter] );
| |
| − |
| |
| − | Return a reference to an array containing the ID's of items in the database which match this condition.
| |
| − |
| |
| − | If the search condition matches the whole dataset then it returns ["ALL"] rather than a huge list of ID's.
| |
| − |
| |
| − | $indent is only used for debugging code.
| |
| − |
| |
| − | $filter is only used in ops of type "grep". It is a reference to an array of ids of items to be greped, so that the grep does not need to be applied to all values in the database.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_optimise -->==optimise==
| |
| − |
| |
| − | @ops = $scond->optimise
| |
| − |
| |
| − | Rearrange this condition tree so that it is more optimised.
| |
| − |
| |
| − | For example an "OR" where one sub op is "TRUE" can be optimised to just be "TRUE" itself.
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=head_undocumented_methods -->=UNDOCUMENTED METHODS=
| |
| − | {{API:Undocumented Methods}}<!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_get_tables -->==get_tables==
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=item_run_tables -->==run_tables==
| |
| − |
| |
| − | <!-- End of Pod2Wiki -->
| |
| − | <!-- Pod2Wiki=_postamble_ --><!-- End of Pod2Wiki -->
| |