Search in sources :

Example 71 with Item

use of com.yahoo.prelude.query.Item in project vespa by vespa-engine.

the class Model method setUniqueIDs.

private List<Item> setUniqueIDs(Item root) {
    List<Item> items = new ArrayList<>();
    collectTaggableItems(root, items);
    int id = 1;
    for (Item i : items) {
        TaggableItem t = (TaggableItem) i;
        t.setUniqueID(id++);
    }
    return items;
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) TaggableItem(com.yahoo.prelude.query.TaggableItem) Item(com.yahoo.prelude.query.Item) TaggableItem(com.yahoo.prelude.query.TaggableItem)

Example 72 with Item

use of com.yahoo.prelude.query.Item in project vespa by vespa-engine.

the class Model method addConnectivityRankProperties.

private void addConnectivityRankProperties(List<Item> connectedItems, Ranking ranking) {
    for (Item link : connectedItems) {
        TaggableItem t = (TaggableItem) link;
        Item connectedTo = t.getConnectedItem();
        if (connectedTo != null && strictContains(connectedTo, connectedItems)) {
            TaggableItem t2 = (TaggableItem) connectedTo;
            String name = "vespa.term." + t.getUniqueID() + ".connexity";
            ranking.getProperties().put(name, String.valueOf(t2.getUniqueID()));
            ranking.getProperties().put(name, String.valueOf(t.getConnectivity()));
        }
    }
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) TaggableItem(com.yahoo.prelude.query.TaggableItem) Item(com.yahoo.prelude.query.Item) TaggableItem(com.yahoo.prelude.query.TaggableItem)

Example 73 with Item

use of com.yahoo.prelude.query.Item in project vespa by vespa-engine.

the class LegacyCombinator method addNotItems.

private void addNotItems(Language language, Query query, Set<QueryPart> pieces, IndexFacts.Session session, Execution.Context context) {
    for (QueryPart part : pieces) {
        if (part.operator != Combinator.EXCLUDED)
            continue;
        String defaultIndex = defaultIndex(session, part);
        Item item = parse(language, query, part, defaultIndex, context);
        if (item == null)
            continue;
        setDefaultIndex(part, defaultIndex, item);
        addNotItem(query.getModel().getQueryTree(), item);
    }
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) NullItem(com.yahoo.prelude.query.NullItem) IndexedItem(com.yahoo.prelude.query.IndexedItem) Item(com.yahoo.prelude.query.Item) AndItem(com.yahoo.prelude.query.AndItem) RankItem(com.yahoo.prelude.query.RankItem) NotItem(com.yahoo.prelude.query.NotItem)

Example 74 with Item

use of com.yahoo.prelude.query.Item in project vespa by vespa-engine.

the class LegacyCombinator method addAndItems.

private void addAndItems(Language language, Query query, Iterable<QueryPart> pieces, IndexFacts.Session session, Execution.Context context) {
    for (QueryPart part : pieces) {
        if (part.operator != Combinator.REQUIRED)
            continue;
        String defaultIndex = defaultIndex(session, part);
        Item item = parse(language, query, part, defaultIndex, context);
        if (item == null)
            continue;
        setDefaultIndex(part, defaultIndex, item);
        addAndItem(query.getModel().getQueryTree(), item);
    }
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) NullItem(com.yahoo.prelude.query.NullItem) IndexedItem(com.yahoo.prelude.query.IndexedItem) Item(com.yahoo.prelude.query.Item) AndItem(com.yahoo.prelude.query.AndItem) RankItem(com.yahoo.prelude.query.RankItem) NotItem(com.yahoo.prelude.query.NotItem)

Example 75 with Item

use of com.yahoo.prelude.query.Item in project vespa by vespa-engine.

the class LegacyCombinator method parse.

private Item parse(Language language, Query query, QueryPart part, String defaultIndex, Execution.Context context) {
    Item item = null;
    try {
        CustomParser parser = (CustomParser) ParserFactory.newInstance(part.syntax, ParserEnvironment.fromExecutionContext(context));
        item = parser.parse(part.query, null, language, query.getModel().getSources(), context.getIndexFacts(), defaultIndex);
    } catch (RuntimeException e) {
        String err = Exceptions.toMessageString(e);
        query.trace("Query parser threw an exception: " + err, true, 1);
        getLogger().log(LogLevel.WARNING, "Query parser threw exception in searcher LegacyCombinator for " + query.getHttpRequest().toString() + ", query part " + part.query + ": " + err);
    }
    return item;
}
Also used : CompositeItem(com.yahoo.prelude.query.CompositeItem) NullItem(com.yahoo.prelude.query.NullItem) IndexedItem(com.yahoo.prelude.query.IndexedItem) Item(com.yahoo.prelude.query.Item) AndItem(com.yahoo.prelude.query.AndItem) RankItem(com.yahoo.prelude.query.RankItem) NotItem(com.yahoo.prelude.query.NotItem) CustomParser(com.yahoo.prelude.query.parser.CustomParser)

Aggregations

Item (com.yahoo.prelude.query.Item)116 AndItem (com.yahoo.prelude.query.AndItem)85 CompositeItem (com.yahoo.prelude.query.CompositeItem)82 WordItem (com.yahoo.prelude.query.WordItem)73 PhraseItem (com.yahoo.prelude.query.PhraseItem)66 NotItem (com.yahoo.prelude.query.NotItem)62 RankItem (com.yahoo.prelude.query.RankItem)60 SubstringItem (com.yahoo.prelude.query.SubstringItem)60 Test (org.junit.Test)58 OrItem (com.yahoo.prelude.query.OrItem)57 PrefixItem (com.yahoo.prelude.query.PrefixItem)53 SuffixItem (com.yahoo.prelude.query.SuffixItem)53 IntItem (com.yahoo.prelude.query.IntItem)52 PhraseSegmentItem (com.yahoo.prelude.query.PhraseSegmentItem)51 NullItem (com.yahoo.prelude.query.NullItem)24 Query (com.yahoo.search.Query)22 EquivItem (com.yahoo.prelude.query.EquivItem)14 NearItem (com.yahoo.prelude.query.NearItem)14 ExactStringItem (com.yahoo.prelude.query.ExactStringItem)12 IndexedItem (com.yahoo.prelude.query.IndexedItem)12