Стратегии того, чтобы усовершенствовать Индекс Lucene изменений модели предметной области

Учитывая, что вы используете библиотеку Axiom XPath, которая, в свою очередь, использует Jaxen, вам нужно будет выполнить следующие три шага, чтобы сделать это в полной мере:

  • Создать a SimpleVariableContext и вызвать context.setVariableValue("val", "value1"), чтобы присвоить значение этой переменной.
  • На вашем объекте BaseXPath вызовите .setVariableContext(), чтобы передать в контекст, который вы назначили.
  • Внутри вашего выражения используйте /a/b/c[x=$val]/y для ссылки на это значение.

Рассмотрим следующее:

package com.example;

import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.common.AxiomText;
import org.apache.axiom.om.util.AXIOMUtil;
import org.apache.axiom.om.xpath.DocumentNavigator;
import org.jaxen.*;

import javax.xml.stream.XMLStreamException;

public class Main {

    public static void main(String[] args) throws XMLStreamException, JaxenException {
        String xmlPayload="val1abc" +
                                        "val2abcd" +
                          "";
        OMElement xmlOMOBject = AXIOMUtil.stringToOM(xmlPayload);

        SimpleVariableContext svc = new SimpleVariableContext();
        svc.setVariableValue("val", "val2");

        String xpartString = "//c[x=$val]/y/text()";
        BaseXPath contextpath = new BaseXPath(xpartString, new DocumentNavigator());
        contextpath.setVariableContext(svc);
        AxiomText selectedNode = (AxiomText) contextpath.selectSingleNode(xmlOMOBject);
        System.out.println(selectedNode.getText());
    }
}

... который испускает выход:

abcd

6
задан dthrasher 10 September 2010 в 20:55
поделиться

1 ответ

Измените сообщение: просто обеспечьте первичный ключ и текущую дату, не пары ключ/значение. Ваш mdb выбирает объект первичным ключом и называет индекс (). После индексации Вас устанавливает значение, "обновленное" в Вашем индексе на дату сообщения. Вы обновляете свой индекс, только если дата сообщения после "обновленного" поля индекса. Таким образом, Вы не можете отстать, потому что Вы всегда выбираете текущие пары ключ/значение сначала.

Как альтернатива: взгляните на http://www.compass-project.org.

4
ответ дан 17 December 2019 в 07:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: